获取基于采购订单的Requsition ID

时间:2019-05-30 20:25:14

标签: peoplesoft peoplecode

在FSCM中,我正在修改“添加/更新PO”页面(主菜单->采购->采购订单->添加/更新PO)上的“搜索”视图,以在与搜索结果页面。我发现唯一同时具有PO_IDREQ_ID的表是PS_PO_LINE_DISTRIB,但是除非我使用SELECT DISTINCT子句,否则当行数超过1时,我将获得多个PO_ID行在采购订单上。

在采购订单查询中,您可以通过单击“采购订单查询详细信息”页面内的“文档状态”链接来查看与采购订单相关的相关采购申请ID。

我开始查看采购订单查询中的PeopleCode,以了解他们如何将PO链接到请购单,它似乎与相关的PeopleCode函数库一起使用工作表,但我无法弄清楚它们的方式建立联系。我希望其他人可能知道答案。谢谢。

1 个答案:

答案 0 :(得分:0)

我使用的是PeopleSoft的旧版本(SCM 8.80,工具8.51),因此您的里程可能会有所不同。我假设您熟悉App Designer。如果没有,请在下面评论,然后我将添加一些有关单击内容的详细信息。

找到“添加/更新PO”组件的名称。

enter image description here

在App Designer中打开PURCHASE_ORDER组件。现在,让我们找到搜索记录的名称。 请注意,“添加搜索记录”有一个不同的记录,因此,如果您也想更改它,请对该记录进行所有这些操作。

enter image description here

打开PO_SRCH记录,然后向其中添加REQ_ID字段。确保将字段标记为键。 您应该考虑将修改后的PO_SRCH用新名称保存,以备恢复为普通PeopleSoft时使用。如果这样做,请将组件中的“搜索记录”更改为新的记录名称。

enter image description here

enter image description here

我们可以看到PO_SRCH是一个视图。因此,让我们修改视图以从REQ_ID中提取PO_LINE_DISTRIB。如上所述,似乎没有另一个同时包含PO_IDREQ_ID的表,因此您必须做一个SELECT DISTINCT

enter image description here

我们应该执行LEFT OUTER JOIN而不是标准联接,因为如果执行标准联接并且您输入没有行的采购订单并将其保存,那么您将永远无法从中检索该采购订单。这个窗口。由于REQ_ID是一个关键字段,因此我们不能为null,因此我们必须进行CASE

我在这里遇到的一件奇怪的事情是构建视图,现在给我一个错误,那就是选择SQL中的列数少于记录定义中的列数。我通过修改SQL Server的视图解决了该问题。我以前从来没有做过,而且我不知道为什么要为这个特定的记录而做。但是无论如何,我在记录的“ Microsoft SQL Server”定义下输入了相同的SQL。

enter image description here

PO_SRCH的属性中,我们可以看到它具有相关的语言记录。如果您只使用一种语言,则可能无需更改就可以逃脱,但是为了完整起见,我会这样做。打开PO_SRCHLN。现在将REQ_ID添加到其中(像上面一样将其标记为关键字段),并将其另存为PO_SRCHLN2(我将其保存为新名称,因此不会破坏其他名称可能正在使用PO_SRCHLN)。

enter image description here

与上面一样编辑SQL。 注意:我不必像上面一样更改Microsoft SQL Server定义。我不知道为什么。

enter image description here

现在建立PO_SRCHLN2

enter image description here

返回PO_SRCH,并将其相关语言记录更改为PO_SRCHLN2

enter image description here

现在建立PO_SRCH

enter image description here

希望您没有收到任何错误,并且您的搜索页面上现在已有请购单ID。我的系统不使用请购单,因此在下面的示例中它们都为空白,但是新的字段在那里。

enter image description here