Problem z IDoc przy EDI - Purchase Order.

A tu dla odmiany podyskutować możesz na tematy logistyczne SAP. Jeśli pojawią się jakieś pytania, nie zwlekaj, zadaj je natychmiast.
ODPOWIEDZ
urbi
Posty: 40
Rejestracja: sob lip 30, 2022 1:40 pm
Has thanked: 13 times
Been thanked: 15 times

Problem z IDoc przy EDI - Purchase Order.

Post autor: urbi »

Cześć,

Co jakiś czas przy aktualizowaniu dat w PO za pośredncictwem EDI pojawia się błąd:
No IDoc items belonging to purchasing document found
Message no. ME760

Diagnosis
•Outbound processing:
No IDoc has been generated because no output-relevant changes to the document were found.
•Inbound verarbeitung:
No items were found for the PO number specified in the IDoc. The IDoc may be incomplete (contains no items).
Znalazłem SAP NOTE 678834 https://launchpad.support.sap.com/#/notes/678834, która mówi, że być może nasza baza danych jest zbyt wolna i z tego powodu zmiana nie jest jeszcze zapisana w tabelach DB, kiedy program już jej szuka. W SAP R/3 zaleca się, aby nie używać 4 natychmiastowego przetwarzania razem z EDI.

Jak mogę zrobić analizę tego problemu aby wykluczyć lub potwierdzić powyższą notę?

Dodatkowo, czy macie jakieś pomysły co może być nie tak? Jak sprawdzić dlaczego IDoc się nie generuje? Czasami działa ok, czasami nie działa ok.
Fakt, używany jest Disptach Time: "4 Send immediately".

Pozdrawiam,
SAP po polsku, nauka SAP, SAP dla początkujących, SAP, S/4HANA, SAP ERP, SAPFORUM, FORUMSAP, HANA, SAP CLOUD PLATFORM, ABAP, EWM
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: Problem z IDoc przy EDI - Purchase Order.

Post autor: dominik.tylczynski »

Moim zdaniem wszelkie próby analizowania problemu i sprawdzania czy nota 678834 - ORDCHG: ME760 for immediate output jest właściwa są stratą czasu. Skoro SAP opisał w nocie problem, to możesz z bardzo dużym prawdopodobieństwem założyć, że tak faktycznie jest.
Wyłapanie takich przejściowych błędów jest bardzo trudne, bo jak zaczniesz debugować generowanie IDoc'ów, to wprowadzisz opóźnienie w ich przetwarzaniu i dokumenty zmian zdążą się zapisać. Naprawdę szkoda czasu, prądu i zapału.
Przestaw czas przetwarzania informacji wyjściowych dla zmian zamówień zgodnie z notą i zobacz czy to rozwiąże problem czy nie. Jest prawie pewne, że tak.
Jeśli z jakiegoś powodu naprawdę musisz pozostać przy natychmiastowym przetwarzaniu, tj. przy czasie 4, to zmodyfikuj program przetwarzający informacje wyjściowe i dodaj na początku ten kod:

Kod: Zaznacz cały

  DATA: lf_leave           TYPE xfeld.

* (0) Redirect this NAST processing to separate LUW - in case it is
*     called with processing time 4 (Immediate) in the update task
  CALL FUNCTION '/SPE/CALL_PROC_IN_NEW_LUW'
    EXPORTING
      is_nast  = nast
    IMPORTING
      ef_leave = lf_leave.

  IF NOT lf_leave IS INITIAL.
* Per default we set the status on error, so that it can be reprocessed
* in error processing (RSNAST0F) if there is any syntax error / update
* termination / ... in the decoupled NAST processing.
    rc = 4.
    EXIT.
  ENDIF.
Kod pochodzi z programu przetwarzającego informację wyjściową SPED (tworzenie dostawy przychodzącej po zaksięgowaniu dostawy wychodzącej). Przekierowuje przetwarzanie do oddzielnej LUW, co skutecznie rozwiązuje problemy blokowania czy niepełnego zapisu.
Stosowałem ten trik w różnych sytuacjach np. wywołanie dodatkowego księgowania ruchu materiałowego po zaksięgowaniu przyjęcia. Działa znakomicie z czasem przetwarzania 4.
urbi
Posty: 40
Rejestracja: sob lip 30, 2022 1:40 pm
Has thanked: 13 times
Been thanked: 15 times

Re: Problem z IDoc przy EDI - Purchase Order.

Post autor: urbi »

Cześć Dominik,

A co w przypadku gdyby nie byłby to problem z szybkością bazy?
Co mogłoby być powodem/co warto sprawdzić w systemie w przypadku problemów z generowaniem się IDoc?

Problemy z IDoc występują tylko czasami (przy tworzeniu jak i edycji) więc niestety jest to losowe.
Sprawdziłem zmiany jakie są robione w PO w dzień błędu IDoc i jest to:

Kod: Zaznacz cały

Item	Object 			Short Text	
10	Schedule Line 0017	Item delivery date
10	Schedule Line 0017	Statistics-Relevant Delivery Date
Pole "Delivery Date" w Schedule line to "EEIND", a dla Statistics-Relevant Delivery Date to "SLFDT".
Sprawdziłem jakie pola odpowiadają za zmiany (w SPRO -> Material Management -> Purchasing -> Messages -> “Field Relevant to Printouts of Changes”) i nie znalazłem ani pola EEIND ani SLFDT, jest tylko pole EEINT, które odpowiada za datę dostawy w zleceniu sprzedażowym (?).

Ale gdyby brak EEIND i SLFDT byłby powodem w powyższym EDI w ogóle by się nie generował, czyż nie?
SAP po polsku, nauka SAP, SAP dla początkujących, SAP, S/4HANA, SAP ERP, SAPFORUM, FORUMSAP, HANA, SAP CLOUD PLATFORM, ABAP, EWM
dominik.tylczynski
Posty: 8326
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1915 times
Been thanked: 1474 times
Kontakt:

Re: Problem z IDoc przy EDI - Purchase Order.

Post autor: dominik.tylczynski »

urbi pisze: wt gru 20, 2022 2:14 pm A co w przypadku gdyby nie byłby to problem z szybkością bazy?
Co mogłoby być powodem/co warto sprawdzić w systemie w przypadku problemów z generowaniem się IDoc?
Jeśli to nie jest kwestia asynchronicznych aktualizacji (tutaj nie chodzi tylko o samą szybkość bazy), to naprawdę nie wiem co. Trudno stwierdzić, tak na sucho, na podstawie samych postów.


urbi pisze: wt gru 20, 2022 2:14 pmProblemy z IDoc występują tylko czasami (przy tworzeniu jak i edycji) więc niestety jest to losowe.
Sprawdziłem zmiany jakie są robione w PO w dzień błędu IDoc i jest to:

Kod: Zaznacz cały

Item	Object 			Short Text	
10	Schedule Line 0017	Item delivery date
10	Schedule Line 0017	Statistics-Relevant Delivery Date
Pole "Delivery Date" w Schedule line to "EEIND", a dla Statistics-Relevant Delivery Date to "SLFDT".
Sprawdziłem jakie pola odpowiadają za zmiany (w SPRO -> Material Management -> Purchasing -> Messages -> “Field Relevant to Printouts of Changes”) i nie znalazłem ani pola EEIND ani SLFDT, jest tylko pole EEINT, które odpowiada za datę dostawy w zleceniu sprzedażowym (?).

Ale gdyby brak EEIND i SLFDT byłby powodem w powyższym EDI w ogóle by się nie generował, czyż nie?
Przede wszystkim rozróżnij ustalanie informacji wyjściowej od jej przetwarzania, które tworzy IDoc. Konfiguracja, którą wskazałeś definiuje pola, których zmiana wyzwala ustalanie informacji wyjściowej. To naturalnie działa, jeśli w konfiguracji rodzaju informacji wyjściowej jest ustawiona procedura, która sprawdza tę konfigurację. Ta konfiguracja może tylko włączyć lub wyłączyć ustalanie informacji wyjściowej. Natomiast nie ma wpływu na samo tworzenie IDoc'a czy jego zawartość.

Tworzeniem IDoc'a zajmuje się program określony w konfiguracji rodzaju informacji wyjściowej. Zwykle jest to standardowy raport RSNASTED, procedura ALE_PROCESSING (dla komunikacji ALE z systemami logicznymi) lub EDI_PROCESSING (dla komunikacji EDI z dostawcami czy klientami).
Tak na prawdę sam raport RSNASTED nie generuje IDoc'a. Ten raport wywołuje funkcję przypisaną do kodu procesu w transakcji WE41. Natomiast sam kod procesu wynika z profilu partnera - transakcja WE20.

Zatem jeśli IDoc jest generowany, ale coś nie gra z jego zawartością do odpowiedzialna jest funkcja z WE41. To oczywiście przy założeniu, że masz w miarę standardową konfigurację generowania IDoc'ów z informacji wyjściowych.
ODPOWIEDZ