Получить идентификатор заявки на основе заказа на поставку

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

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

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


person Nick    schedule 30.05.2019    source источник
comment
Ник, stackoverflow предназначен для помощи в кодировании... это общий вопрос, касающийся PeopleSoft, если вы не можете найти ответ в PeopleBooks или посмотреть коды людей, вам лучше задать вопрос на форумах сообщества oracle или даже открыть запрос на обслуживание.   -  person Walucas    schedule 31.05.2019


Ответы (1)


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

Найдите имя компонента «Добавить/обновить заказ на покупку».

введите здесь описание изображения

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

введите здесь описание изображения

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

введите здесь описание изображения

введите здесь описание изображения

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

введите здесь описание изображения

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

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

введите здесь описание изображения

В свойствах PO_SRCH мы видим, что у него есть связанная языковая запись. Если вы используете только один язык, вы, вероятно, можете обойтись без его изменения, но я сделаю это для полноты картины. Откройте PO_SRCHLN. Теперь добавьте к нему REQ_ID (отметьте его как ключевое поле, как вы сделали выше) и сохраните его как PO_SRCHLN2 (я сохраняю его под новым именем, чтобы не сломать ничего, что может использовать PO_SRCHLN).

введите здесь описание изображения

Отредактируйте SQL так же, как вы делали выше. Примечание. Мне не пришлось также изменять определение Microsoft SQL Server, как я сделал выше. Я понятия не имею, почему.

введите здесь описание изображения

Теперь постройте PO_SRCHLN2.

введите здесь описание изображения

Вернитесь к PO_SRCH и измените соответствующую языковую запись на PO_SRCHLN2.

введите здесь описание изображения

Теперь постройте PO_SRCH.

введите здесь описание изображения

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

введите здесь описание изображения

person Ben Rubin    schedule 01.06.2019