Entry point znajduje się w obrębie TRTACHMGT1 proces uwzględnia zapotrzebowanie na narzędzia typu workbench (globalne planowanie, plan pracy i grupowanie) wywołuje czynność „PECBESOINS”.
Celem tych czynności jest umożliwienie przeliczenia na jednostki fizyczne ilości zapotrzebowania, która ma być wzięta pod uwagę.
Domyślnie odbywa się to przy użyciu funkcji artykułu, jednak wyłącznie dla zapotrzebowania niewyszczególnionego w dokumencie zakupu.
Brak transakcji w toku.
Utworzony zostaje otwarty plik log.
Wywołanie wykonywane jest dla każdej pozycji zapotrzebowania uwzględnionej w narzędziach typu workbench.
Następujące zmienne są ładowane w chwili zgłoszenia czynności „PECBESOINS”.
TRAIT
Typ przetwarzania dla zapotrzebowania:
- 4 = Tworzenie zapotrzebowań zakupu
- 5 = Tworzenie standardowych zamówień
- 6 = Tworzenie zapytań o wysyłkę (zamówienia kontraktowe)
ABREV
Skrót dla użytej maski ekranu („PMG”)
Można używać maski [M:PMG] , I zmienna wskazuje na aktualnie przetwarzaną pozycję w tabeli.
[M:PMG]WIPTYP(I)
Typ zlecenia:
- 2 = „PO” Zlecenie dostawcy
- 4 = „SC” Usługa kooperacji
- 7 = „TR” Uzupełnianie zapasów w transferze magazynu
[M:PMG]WIPSTA(I)
Status zamówienia:
- 1 = „F” Potwierdzone
- 2 = „P” Planowane
- 7 = „S” Proponowane
Nie wolno modyfikować podanych powyżej zmiennych oraz klas.
Następująca zmienna musi zostać zmodyfikowana, aby móc wpłynąć na proces wyboru zapotrzebowania.
RMNQTY
Ilość w ramach zapotrzebowania, która ma być uwzględniona, wyrażona w:
- fizycznych jednostkach magazynowych, jeżeli zapotrzebowanie pochodzi z dokumentu zakupu ( „POP”, „POF”, „TRP”, „TRF”
- lub w aktywnych jednostkach magazynowych, jeżeli zapotrzebowanie nie pochodzi z dokumentu zakupu („POS”, „TRS”, „SCF” itd.)
-
Przykład specjalnego/niestandardowego procesu aktywowanego przez Entry point PECBESOINS:
$ACTION
Przykład ACTION
W przypadku „PECBESOINS”: Gosub PECBESOINS
W przypadku „ORDLEC”: Gosub ORDLEC
W przypadku „ORDMAJ”: Gosub ORDMAJ
Endcase
Return
#----- Przeliczenie wymaganej ilości na jednostkę fizyczną---#
$PECBESOINS
If find(TRAIT,4,5,6) & ABREV='PMG' & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)
If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)
Read [ITM] ITM0=[M:PMG]ITMREF(I): If fstat Raz [F:ITM]: Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT
Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV
Endif
Endif
Return
#----- Przeliczenie ilości na jednostki fizyczne po odczycie [F:ORD] -----#
$ORDLEC
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF: If fstat Raz [F:ITM]: Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
#----- Przeliczenie ilości w aktywnej jednostce w przypadku gdy zapotrzebowanie wiąże się z zakupem -----#
$ORDMAJ
If find([F:ORD]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)='P'
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF: If fstat Raz [F:ITM]: Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
W tabeli poniżej flaga istotnej treści wskazuje, że treść jest zgodna z kontekstem.
Tabela | Ważna zawartość | Tytuł tabeli |
ZAMÓWIENIA | Nr | Oczekujące przeniesienia |
ITMMASTER | Nr | Artykuły |
ITMBPS | Nr | Artykuły — Dostawcy |
PREQUIS | Jeżeli TRAIT = 4 | Zapotrzebowania zakupu w nagłówku |
PREQUISD | Jeżeli TRAIT = 4 | Pozycje w zapotrzebowaniu zakupu |
PORDER | Jeżeli TRAIT = 5 lub 6 | Nagłówki zamówienia zakupu |
PORDERC | Jeżeli TRAIT = 6 | Pozycje artykułów w kontrakcie |
PORDERP | Jeżeli TRAIT = 5 lub 6 | Pozycje w ramach ceny zamówienia zakupu |
PORDERQ | Jeżeli TRAIT = 5 lub 6 | Ilość pozycji zamówienia zakupu |
Obowiązkowe jest użycie tego Entry point w połączeniu z dwoma Entry point ORDMAJ i ORDLEC, by w ten sposób bez problemów przetworzyć problem artykułów związanych z dwiema jednostkami (ilości w jednostkach aktywnych dla WIP oraz w jednostkach fizycznych dla dokumentów zakupu).
Entry point znajduje się w obrębie TRTACHMGT1 proces uwzględnia zapotrzebowanie na obszary robocze (globalne planowanie, plan pracy i grupowanie) wywołuje czynność „ORDLEC”.
Celem tej czynności jest umożliwienie przeliczenia na jednostki fizyczne jednostek WIP, które mają zostać odczytane.
Odbywa się to przy użyciu funkcji domyślnie przypisanej artykułowi, ilości WIP są zawsze wyrażone w jednostkach aktywnych.
Wywołanie wykonywane jest po odczytaniu rekordu w tabeli ZAMÓWIENIA w procesach modułu zakupowego.
Pole [F :ORD] ładowane jest podczas wywołania czynności „ORDLEC”.
Następujące ilości muszą zostać przeliczone na jednostki fizyczne w przypadku gdy artykuł został „oflagowany”:
[F :ORD]EXTQTY
Ilość planowana
[F :ORD]CPLQTY
Ilość rzeczywista
[F :ORD]RMNEXTQTY
Ilość pozostała
Przykład specjalnego/niestandardowego procesu aktywowanego przez Entry point ORDLEC:
$ACTION
Przykład ACTION
When 'PECBESOINS' : Gosub PECBESOINS
When 'ORDLEC' : Gosub ORDLEC
When 'ORDMAJ' : Gosub ORDMAJ
Endcase
Return
#----- Przeliczenie wymaganej ilości na jednostkę fizyczną---#
$PECBESOINS
If find(TRAIT,4,5,6) & ABREV='PMG' & (!find([M:PMG]WIPTYP(I),2,7) | [M:PMG]WIPSTA(I)=3)
If [F:ITM]ITMREF<>[M:PMG]ITMREF(I)
Read [ITM] ITM0=[M:PMG]ITMREF(I) : If fstat Raz [F:ITM] : Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[L]RMNQTY=[L]RMNQTY*100/[F:ITM]DEFPOT
Call QTEARR ([L]RMNQTY,[F:ITM]STU) From TRTDIV
Endif
Endif
Return
#----- Przeliczenie ilości na jednostki fizyczne po odczycie [F:ORD] -----#
$ORDLEC
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Read [ITM] ITM0=[F:ORD]ITMREF: If fstat Raz [F:ITM]: Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*100/[F:ITM]DEFPOT
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
#----- Przeliczenie ilości w aktywnej jednostce w przypadku gdy zapotrzebowanie wiąże się z zakupem -----#
$ORDMAJ
If find([F:ORD]WIPTYP,2,7) & left$([M:ORDK]ABBFIL,1)='P'
If [F:ITM]ITMREF<>[F:ORD]ITMREF
Odczyt [ITM] ITM0=[F:ORD]ITMREF: If fstat Raz [F:ITM]: Endif
Endif
If [F:ITM]STOMGTCOD=3 & [F:ITM]DEFPOT<>0
[F:ORD]EXTQTY=[F:ORD]EXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]EXTQTY,[F:ITM]STU) From TRTDIV
[F:ORD]CPLQTY=[F:ORD]CPLQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]CPLQTY,[F:ITM]STU) From TRTDIV
[F:ORD]RMNEXTQTY=[F:ORD]RMNEXTQTY*[F:ITM]DEFPOT/100
Call QTEARR ([F:ORD]RMNEXTQTY,[F:ITM]STU) From TRTDIV
Endif
Return
W tabeli poniżej flaga istotnej treści wskazuje, że treść jest zgodna z kontekstem.
Tabela | Ważna zawartość | Tytuł tabeli |
ZAMÓWIENIA | Tak | Oczekujące przeniesienia |
ITMMASTER | Nr | Artykuły |
Obowiązkowe jest użycie tego Entry point w połączeniu z dwoma Entry point ORDMAJ i PECBESOINS, by w ten sposób bez problemów przetworzyć problem artykułów związanych z dwiema jednostkami (ilości w jednostkach aktywnych dla WIP oraz w jednostkach fizycznych dla dokumentów zakupu).