Witam,
potrzebuję utworzyć funkcję z wykorzystaniem fm MD_SALES_ORDER_STATUS_REPORT (odpowiednik transakcji co46).
Problem w tym, że dla zlecenia sprzedaży, dla którego nie ma zapotrzebowań (VC), następuje przerwanie wykonywania funkcji i wyświetlany jest następujący komunikat:
Dla zlecenia klienta 20108964 000010 brak zapotrzebowań istot. dla planow. MRP
Nr komunikatu MF326
W sumie taki sam komunikat pojawia się podczas wykonywania transakcji co46.
Chodzi o to, że chciałbym, aby funkcja wykonała się i zwróciła pustą tabelę, niż żeby nastąpiło przerwanie wykonywania funkcji.
Istotne jest to, gdy podaję do ww. funkcji większą liczbę zleceń sprzedaży, z których np. jedna nie ma zapotrzebowań. Wówczas nastąpiuje przerwanie wykonywania funkcji, mimo że dla pozostałych są zapotrzebowania.
Sprawdziłem parametry na wejściu fm MD_SALES_ORDER_STATUS_REPORT, ale żaden nie wyłączył takiego działania funkcji.
Czy ktoś z Was ma pomysł jak rozwiązać problem?
Funkcja co46
-
- Posty: 8350
- Rejestracja: wt kwie 03, 2007 4:05 pm
- Has thanked: 1922 times
- Been thanked: 1476 times
- Kontakt:
Re: Funkcja co46
Spróbuj wywołać funkcję MD_SALES_ORDER_STATUS_REPORT z wyjątkiem OTHERS:
Takie wywołanie powinno spowodować przejęcie ewentualnych komunikatów błędu wygenerowanych przez funkcję do wyjątku OTHERS i ustawienie sy-subrc = 2.
Kod: Zaznacz cały
CALL FUNCTION 'MD_SALES_ORDER_STATUS_REPORT'
EXPORTING
...
IMPORTING
...
EXCEPTIONS
error = 1
others = 2.
Re: Funkcja co46
Właśnie w taki sposób wywołuję funkcję i nie zwracana ona żadnego kodu błędu.
Następuje przerwanie działania funkcji, a na dolnej listwie pojawia się wcześniej załączony komunikat.
CALL FUNCTION 'MD_SALES_ORDER_STATUS_REPORT'
EXPORTING
* EDELET = 0000
edelkz = 'VC'
edelnr = ''
* EDELPS = 000000
* EPLSCN = 000
* AVAILABILITY_CHECK = ' '
* NO_SAVETY_STOCK = ' '
* DATA_IN_MEMORY = ' '
* MEMORY_ID = 'PLHS'
* EMATNR = ' '
* EWERKS = ' '
* EBERID = ' '
* EMDPS =
nodisp = 'X'
* I_IGNORE_MTOLD = ' '
* I_PROFID = ' '
i_profid = 'SAP000000002'
* I_REP_REFRESH = ' '
* IS_PROFILE =
it_vbep_keys = lt_salesorder
* NO_COMMIT_WORK = ' '
* IMPORTING
* ET_MLDELAY =
* ET_RTREE_SEL =
TABLES
iioelx = lt_iioelx
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
Następuje przerwanie działania funkcji, a na dolnej listwie pojawia się wcześniej załączony komunikat.
CALL FUNCTION 'MD_SALES_ORDER_STATUS_REPORT'
EXPORTING
* EDELET = 0000
edelkz = 'VC'
edelnr = ''
* EDELPS = 000000
* EPLSCN = 000
* AVAILABILITY_CHECK = ' '
* NO_SAVETY_STOCK = ' '
* DATA_IN_MEMORY = ' '
* MEMORY_ID = 'PLHS'
* EMATNR = ' '
* EWERKS = ' '
* EBERID = ' '
* EMDPS =
nodisp = 'X'
* I_IGNORE_MTOLD = ' '
* I_PROFID = ' '
i_profid = 'SAP000000002'
* I_REP_REFRESH = ' '
* IS_PROFILE =
it_vbep_keys = lt_salesorder
* NO_COMMIT_WORK = ' '
* IMPORTING
* ET_MLDELAY =
* ET_RTREE_SEL =
TABLES
iioelx = lt_iioelx
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.