Получить идентификатор повторного запроса на основе заказа на поставку - PullRequest
0 голосов
/ 30 мая 2019

В FSCM я хочу изменить представление поиска на странице добавления / обновления заказа (Главное меню -> Закупки -> Заказы на покупку -> Добавить / обновить заказы), чтобы отобразить идентификатор заявки, связанный с заказом, в страница результатов поиска. Единственная найденная таблица, в которой есть и PO_ID, и REQ_ID, это PS_PO_LINE_DISTRIB, однако, если я не использую предложение SELECT DISTINCT, я получу несколько строк PO_ID, если в PO более 1 строки.

В запросе заказа на поставку вы можете увидеть связанные идентификаторы заявок, связанные с заказом, щелкнув ссылку Статус документа на странице сведений запроса заказа на поставку.

Я начал смотреть на PeopleCode в запросе на заказ на покупку, чтобы увидеть, как они связывают заказ на поставку с заявкой, и, похоже, он использует рабочие таблицы со связанными библиотеками функций PeopleCode, но я не смог понять, как они получить связь. Я надеюсь, что кто-то еще может знать ответ на этот вопрос. Спасибо.

1 Ответ

0 голосов
/ 01 июня 2019

Я использую старую версию PeopleSoft (SCM 8.80, Tools 8.51), поэтому ваш пробег может отличаться.Я предполагаю, что вы знакомы с дизайнером приложений.Если нет, прокомментируйте ниже, и я добавлю некоторые подробности о том, на что я нажимаю.

Найдите название компонента Добавить / обновить PO.

enter image description here

Откройте компонент PURCHASE_ORDER в App Designer.Теперь давайте найдем название поисковой записи. Обратите внимание, что для Добавить запись поиска существует другая запись, поэтому, если вы хотите изменить это, сделайте все это и для этой записи.

enter image description here

Откройте запись PO_SRCH и добавьте в нее поле REQ_ID.Убедитесь, что вы отметили поле как ключ. Вам следует рассмотреть возможность сохранения измененного PO_SRCH под новым именем на тот случай, если вы захотите вернуться к vanilla PeopleSoft.Если это так, замените запись поиска в компоненте на новое имя записи.

enter image description here

enter image description here

Мы можем видеть, что PO_SRCH является представлением.Итак, давайте изменим представление, чтобы получить REQ_ID из PO_LINE_DISTRIB.Как вы упомянули выше, похоже, что нет другой таблицы с PO_ID и REQ_ID, поэтому вам придется выполнить SELECT DISTINCT.

enter image description here

Мы должны сделать LEFT OUTER JOIN вместо стандартного объединения, потому что если вы делаете стандартное объединение и вводите заказ на покупку без строк и сохраняете его, то вы никогда не сможете получить эту покупкузаказ в этом окне.Так как REQ_ID является ключевым полем, мы не можем иметь нулевое значение, поэтому мы должны сделать CASE.

Одна странная вещь, с которой я столкнулся, это создание представления, теперь дало мне ошибкуо выборе меньшего числа столбцов в SQL, чем было в моем определении записи.Я решил это, изменив представление для SQL Server.Я никогда не делал этого раньше, и я не знаю, почему я должен был сделать это для этой конкретной записи.Но в любом случае я ввел тот же SQL под определением записи «Microsoft SQL Server».

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

Надеемся, что вы не получили никаких ошибок, и на вашей странице поиска теперь есть идентификатор заявки.Моя система не использует заявки, поэтому они все пустые в приведенном ниже примере, но там есть новое поле.

enter image description here

...