Funkcja co46

A tu dla odmiany podyskutować możesz na tematy logistyczne SAP. Jeśli pojawią się jakieś pytania, nie zwlekaj, zadaj je natychmiast.
ODPOWIEDZ
pabliq
Posty: 390
Rejestracja: pn cze 08, 2009 9:32 am
Has thanked: 67 times
Been thanked: 11 times

Funkcja co46

Post autor: pabliq »

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?
dominik.tylczynski
Posty: 8350
Rejestracja: wt kwie 03, 2007 4:05 pm
Has thanked: 1922 times
Been thanked: 1476 times
Kontakt:

Re: Funkcja co46

Post autor: dominik.tylczynski »

Spróbuj wywołać funkcję MD_SALES_ORDER_STATUS_REPORT z wyjątkiem OTHERS:

Kod: Zaznacz cały

CALL FUNCTION 'MD_SALES_ORDER_STATUS_REPORT'
   EXPORTING
      ...
   IMPORTING
      ...
   EXCEPTIONS
      error = 1
      others = 2.
Takie wywołanie powinno spowodować przejęcie ewentualnych komunikatów błędu wygenerowanych przez funkcję do wyjątku OTHERS i ustawienie sy-subrc = 2.
pabliq
Posty: 390
Rejestracja: pn cze 08, 2009 9:32 am
Has thanked: 67 times
Been thanked: 11 times

Re: Funkcja co46

Post autor: pabliq »

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.
ODPOWIEDZ