martedì 23 marzo 2010

Esempio di specifica controlli in LQUA con chiave LQNUM e utilizzo FM HU_CREATE_GOODS_MOVEMENT


la seguente modifica coinvolge le 3 transazioni di precarico (zwrf_1ot01 / 02 / 03) tenendo presente che nella 01 la lettura del singolo SSCC e la contestuale digitazione del tasto "enter" provoca la registrazione immediata ad ogni lettura di SSCC (1 to 1) e quindi l'elaborazione della funzione da integrare se viene rispettata la condizione di seguito descritta mentre nella 02 e 03 la lettura dell'SSCC prevede l'inserimento in una tabellina interna in attesa della conferma definitiva di + sscc alla digitazione del tasto funzione SALVA.

la modifica consiste in:

condizione principale:
solo e soltanto se l'OT (v_tanum - input iniziale delle 3 transazioni da modificare) è dedicato ad uno stock speciale (ltap-sonum diverso da zero accedendo in ltap con ltap-tanum = v_tanum_input - se trovi una pos con sonum diverso da 0 anche le altre idem) andSSCC1 letto in input alla transazione - v_sscc1_input - non ha il medesimo stock speciale della pos del v_tanum_input, ovvero LTAP-SONUM (accedendo con v_tanum) diverso da LQUA-SONUM (accedendo con LQNUM = v_ltap_NLQNR la procedura è descritta di seguito) mentre i campi matnr - charg - vlpla delle medesime tab LTAP ed LQUA corrispondono. questo controllo dovrebbe già essere implementato ma bisogna integrare la modifica in caso di sonum diversi. attualmente le transazioni bloccano il procedimento per incoerenza con il fabbisogno richiesto a monte del processo di vendita. questa seconda condizione la verifichiamo domani perchè la modfica dipende da come è stata implementata (se scatenata da una funzione std o custom).

solo se viene soddisfatta la condizione principale procedere con il seguente:
ogni qualvolta viene inserito il codice SSCC (v_sscc1_input) e digitato l'invio di tastiera bisogna avviare il controllo, di seguito descritto, preceduto dalla seguente lettura della qtà dell'SSCC letto in input alle transazioni:

estrazione della qta disponibile dell'SSCC letto in input:
accedere nella tab LEIN per LEIN-LENUM = v_sscc1_input per estrarre il valore del campo LEIN-BTANR (v_lein_btanr).
accedere in LTAP con LTAP-TANUM =v_lein_btanr and LTAP-NLENR = v_sscc1_input per estrarre LTAP-NLQNR (= v_ltap_NLQNR).
accedere in LQUA con LQUA-LQNUM = v_ltap_NLQNR per estrarre il valore del campo lqua-gesme = lqua-verme (devono essere uguali i due valori dei due campi qtà per essere ritenuta qtà disponibile) da assegnare alla variabile v_qta_sscc1_input (usata nel check successivo).

verifica condizione per avviare il trasferimento SSCC tra due contratti a parità di materiale/partita/ubicazione/qtà disponibile:
accedere nella tab. LQUA per ogni (lqua-lqnum diverso da v_ltap_nlqnr) and (lqua-lgnum = v_lgnum) and (lqua-bestq = space) and (lqua-sonum diverso da space and diverso da lqua-sonum relativo al record lqua-lqnum = v_ltap_nlqnr) per verificare se esiste un SSCC1_output che ha le stesse caratteristiche dell'SSCC1 e che quindi rispetta la seguente condizione:

lqua-charg = ltap-charg (stessa partita)
lqua-matnr = ltap-matnr (stesso materiale)
lqua-lgpla = ltap-vlpla (stessa ubicazione)
lqua-gesme = lqua-verme = v_qta_sscc1_input (stessa qtà)

se si verifica la condizione di cui sopra:
estrarre il valore di LQUA-LENUM da assegnare a v_sscc1_output e il corrispondente valore di lqua-sonum
avviare due volte in modo accoppiato (una per ogni SSCC1 letto in input e relativamente per l'SSCC1_output selezionato alla condizione precedente) la funzione HU_CREATE_GOODS_MOVEMENT già utilizzata nelle tcode ZWRF_TR02 e ZWWS_TR02. Per le strutture e i dati da alimentare nella funzione puoi prendere come riferimento le transazioni citate. ti segnalo di seguito solo le strutture alimentate se l'elaborazione viene avviata dalla HUMO:

se non si verifica la condizione inviare messaggio di errore "SSCC letto non è coerente con il contratto del cliente". Questo messaggio va bene nella zwrf_1ot01 mentre nelle restanti due è da adattare. domani vediamo come.

IT_MOVE_TO:
HUWBEVENT = 0016 (fisso)
SONUM = v_lqua_sonum (corrispondente la prima volta a lqua-sonum di v_sscc1_input e la seconda volta a lqua-sonum di v_sscc1_output)
IT_INTERNAL_ID:
VENUM = v_vekp_venum (corrispondente la prima volta a v_sscc1_input la seconda volta av_sscc1_output)

2 commenti:

  1. It was very nice blog to learn about SAP MM. Thanks for sharing new things.
    SAP MM

    RispondiElimina
  2. Questo commento è stato eliminato dall'autore.

    RispondiElimina