Punkty wejścia > Moduł Zakupy > Standardowy skrypt TRTACHMGT1 

PECBESOINS: Modyfikacja ilości do uwzględnienia

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.

Kontekst i metoda działania

Transakcja

Brak transakcji w toku.

Plik log

Utworzony zostaje otwarty plik log.

Różne przypadki wywołań

Wywołanie wykonywane jest dla każdej pozycji zapotrzebowania uwzględnionej w narzędziach typu workbench.

Dostępne zmienne oraz maski

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

Otwórz tabele

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

Uwagi dodatkowe

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

ORDLEC: Modyfikacja ilości po odczycie WIP

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.

Kontekst i metoda działania

Różne przypadki wywołań

Wywołanie wykonywane jest po odczytaniu rekordu w tabeli ZAMÓWIENIA w procesach modułu zakupowego.

Dostępne zmienne oraz maski

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

Otwórz tabele

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

Uwagi dodatkowe

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