| Version ACE : 5.0-00 | |
|
Package : Standard Sous-programme Basic : Mouvement_OP_suivant Nom de la gnc : gnc_rf_mvt_suiv |
Fonctionnalité :Préparation |
| Schémas d’entrée et de sortie : | voir en fin de document. |
The API searches for a picking list movement and if the corresponding logistic stock object to be taken is not entirely presented in the slot - changes it with a compatible logistic stock object. If the logistic stock object is changed, the API readdresses the movement and eventually splits it. The next picking list movement is read.
API imbriquées : aucune.
Contraintes et limites de fonctionnement (hors périmètre)
| RAS. |
Paramétrage (PPE)
| LRFLOP - |
Prototype de la fonction Basic
| Mouvement_OP_suivant (numero_module, idop, ligord, mode_prepa, codallcir, lcodmag, adremp, codpro, idobj, l_nbrcnt, cnttyp, cntcod, l_nbrcnt1, cnttyp1, cntcod1, l_nbrcnt2, cnttyp2, cntcod2, idmvt, lib_ean_idobj, idobjcol, colis, nompro, lcodmag_suiv, adremp_suiv, qteunt, statut, gel, adremp_espace, zn_poids, zn_sensible, taille_serie, reflot, numero_colis, sigliv, nbre_mvt_g, nbre_mvt_3, codlnst) |
Messages en entrée
| MVT_SUIV~idop~ligord~mode~mode_prepa~ |
Messages en sortie
|
Retour~codallcir~lcodmag~adremp~codpro+nompro~idobj~l_nbrcnt~cnttyp~cntcod~l_nbrcnt1~ cnttyp1~cntcod1~l_nbrcnt2~cnttyp2~cntcod2~idmvt~lib_ean_idobj~ligord~idobjcol~colis~ lcodmag_suiv+adremp_suiv+qteunt+statut+gel+adremp_espace+zn_poids+zn_sensible+taille_serie~ reflot~numero_colis~sigliv~complement_lirtrn~reflot_imp~numlot~nbre_mvt_g~nbre_mvt_3~codlnst |
Valeurs restituées par l’API
| VALEUR | REMARQUE |
| 61 | Les mouvements restants ne sont pas exécutables (quantité non disponible). |
| 0 | Pas de mouvement suivant |
Processus, contrôles et règles de gestion
| ETAPE | DESCRIPTION DU PROCESSUS |
| 1 | Recherche du prochain mouvement de préparation de l’Ordre de Préparation. En mode 0, recherche du prochain mouvement exécutable (quantité disponible). |
| Détail : |
Read the Depot (TIE table) for the operator. Read the picking list data (LOP table) with the input parameters ‘idop’. If the picking list does not exist, the API returns an error code 0. Search for a picking list movement. For each stock movement (LMVTSTK table) in status ‘8’ (Not in database) or previous status (statut <=8), with idord = ‘idop’ input parameter, ligord >= ‘ligord’ parameter, typmvt = lop.typmvt and with an ‘S’ direction (sensmvt=’S’). If the API treats only the executable movements (‘mode’ input parameter != ‘1’). Call the API gnc_rf_mvt_executable, as so to check whether the movement is executable. If the movement is not executable. Read the next movement. Otherwise. The movement is considered as found. Otherwise. The movement is considered as found. If the movement is not found and the ‘ligord’ input parameter is filled (ligord > 0). For each stock movement (LMVTSTK table) in status ‘8’ (Not in database) or previous status (statut <=8), with idord = ‘idop’ input parameter, ligord >= 0, typmvt = lop.typmvt and with an ‘S’ direction (sensmvt=’S’). If the API treats only the executable movements (‘mode’ input parameter != ‘1’). Call the API gnc_rf_mvt_executable, as so to check whether the movement is executable. If the movement is not executable. Read the next movement. Otherwise. The movement is considered as found. Otherwise. The movement is considered as found. If the movement is not found. If there is a not executable movement found, but the API treats only the executable movements. The API returns the error code 0. Otherwise. Put the picking list (LOP) in ‘waiting’ status (statut = ‘1’). The API returns the error code 61. Read the logistic stock object (LOBJSTK table), which is to be taken with (lmvtstk.typtie, lmvtstk.sigtie, lmvtstk.idobj). If the logistic stock object to be taken is not entirely presented in the slot. (If the parameter “LRFLOP” is active and the automatically loading of the stock object to be taken if the initial stock object is not entirely presented in the slot address is allowed. (the value of the parameter field N2 is equal to 1) and the movement is addressed (lmvtstk.statut=3) and the movement’s store type is picking (lmvtstk.typmag=3) and (the logistic stock object to be taken is not found or the movement’s quantity of CU is greater than the stock object quantity of CU (lmvtstk.qteunt > lobjstk.qteunt) or the slot addresses of the movement and stock object are different (lobjstk.adremp != lmvtstk.adremp) or the identifier of the parent logistic stock object is not empty (lobjstk.idobjpere is not empty) ) ). Look for a logistic stock object compatible with the logistic stock object, which is to be taken. For each logistic stock object (LOBJSTK table) read with (lmvtstk.typtie, lmvtstk.sigtie, lmvtstk.codpro, lmvtstk.adremp, lmvtstk.lcodmag). If such a logistic stock object is found. If the logistic stock object belongs to a container on stock (lobjstk.typstock='1') and the logistic stock object is not in a status ‘moving in progress’ (lobjstk.flgencdpl!='1') and the logistic stock object is not a virtual picking object (lobjstk.l_virtuel!='1') and (the logistic stock object is not in a status ‘RF treatment in progress’ (lobjstk.verrou is empy) or the logistic stock object is in a status ‘RF treatment in progress by the current opperator’ (lobjstk.verrou = gen.uti_cod)) and the nature of the stock is equal for the found logistic stock object and for the logistic stock object, which is to be taken (lobjstk.natstk). The found logistic stock is considered as compatible with the logistic stock object, which is to be taken. The found logistic stock is stored. The counter for the found logistic stocks is incremented. Add the quantity of CU of the found stock object to a total quantity of CU for all found stock objects. If the quantity of CU of the found stock objects is different from ‘0’. For each found logistic stock object. If the quantity of CU for the object is greater than ‘0’. Call the function gnc_stkobj_readres, as so to readdress the found movement toward the logistic stock object which quantity of CU is greater than ‘0’. Do not search for another found logistic stock object (Break the cycle). If the found movement is successfully readressed toward a found logistic stock object which quantity of CU greater than ‘0’ AND quantity of CU for the movement is greater than the quantity of CU for the stock object. Call the function gnc_stkobj_eclat_mvt, as si to split the found movement. If the movement is successfully split. Read again the found movement (LMVTSTK table). For each found logistic stock object. If the quantity of CU for the object is greater than ‘0’. Call the function gnc_stkobj_readres, as so to readdress the movement generated after the split toward the logistic stock object which quantity of CU is greater than ‘0’. Read the next stock movement (LMVTSTK table) in status ‘8’ (Not in database) or previous status (statut <=8), with idord = ‘idop’ input parameter, ligord >= ‘ligord’ parameter, typmvt = lop.typmvt and with an ‘S’ direction (sensmvt=’S’) and movement identifier different from the identifier of the previously found stock movement (idmvt != lmvtstk.idmvt). If there is no next movement. The previously found movement is considered as the next movement. |
Erreurs possibles
| CAUSE | EFFET |
| Les mouvements restants ne sont pas exécutables (quantité non disponible). | Code retour 61. |
| La liste de picking n'existe pas. | Code retour 0 |
| Si l'un des mouvements n'est pas exécutable, l'API traite les autres mouvements exécutables. | Code retour 0 |
Exemple(s) d’utilisation
| W_ret = Mouvement_OP_suivant (numero_module, idop, w_ligord, mode_prepa, codallcir, lcodmag, adremp, codpro, idobj, l_nbrcnt,cnttyp, cntcod, l_nbrcnt1, cnttyp1, cntcod1, l_nbrcnt2, cnttyp2, cntcod2, idmvt,lib_ean_idobj, idobjcol, colis, nompro, w_lcodmag_suiv, w_adremp_suiv, w_qteunt, statut, w_gel, w_adremp_espace, w_zn_poids, w_zn_sensible, w_taille_serie, w_reflot, w_numero_colis, sigliv, nbre_mvt_g, nbre_mvt_3, codlnst) |
| NOM DU PARAMÈTRE | TYPE | FORMAT | TAILLE | OBL O/N | REMARQUE |
| idop | CHAR | 10 | O | Identifiant de l’OP | |
| ligord | CHAR | 10 | N | Identifiant de la ligne d’OP courante | |
| mode | CHAR | 1 | N |
0 : Uniquement le prochain mouvement exécutable 1 : Le prochain mouvement |
|
| mode_prepa | CHAR | 1 | N |
Mode de préparation 1 : Mono colis détail 2 : Multi colis en l’état 3 : Multi colis détail |
| NOM | DESCRIPTION | FORMAT |
|---|---|---|
| ParamOut1 | Circulation lane ID - lmvtstk.codallcir | Char(8) |
| ParamOut2 | Logistic store code - lmvtstk.lcodmag | Char(3) |
| ParamOut3 | Slot address - lmvtstk.adremp | Char(10) |
| ParamOut4 | Product code + Product name - lmvtstk.codpro+pro.nompro | Char(46) |
| ParamOut5 | Logistic stock object ID or Product code (lmvtstk.codpro or lmvtstk.idobj) | Char(18) |
| ParamOut6 | Container numbers - lmvtstk.l_nbrcnt | Number |
| ParamOut7 | Container type – lmvtstk.cnttyp | Char(2) |
| ParamOut8 | Container code - lmvtstk.cntcod | Char(2) |
| ParamOut9 | Container numbers level 1 - l_nbrcnt1 | Number |
| ParamOut10 | Container type level 1- cnttyp1 | Char(2) |
| ParamOut11 | Container code level 1 - cntcod1 | Char(2) |
| ParamOut12 | Container numbers level 2 - l_nbrcnt2 | Number |
| ParamOut13 | Container type level 2 - cnttyp2 | Char(2) |
| ParamOut14 | Container code level 2 - cntcod2 | Char(2) |
| ParamOut17 | Movement identifier - idmvt | Char(9) |
| ParamOut18 | “EAN” or “Id Objet” | Char(8) |
| ParamOut19 | Picking list ID – lmvtstk.ligord | Number |
| ParamOut20 | Logistic stock parcel ID - lmvtstk.idobjcol | Char(18) |
| ParamOut21 |
Parcel detail/Parcel ‘in the state’ flag. 0 = Parcel detail 1 = Parcel ‘in the state’ |
Char(1) |
| ParamOut22 | Logistic store code for the next movement - lmvtstk.lcodmag | Char(3) |
| ParamOut23 | Slot address with spaces for the next movement. | Char(20) |
| ParamOut24 | Quantity of CU for the next movement – lmvtstk.qteunt | Number |
| ParamOut25 | Movement status - lmvtstk.statut | Char(1) |
| ParamOut26 | Breaking indicator (“G”, “1” or “2”) | Char(1) |
| ParamOut27 | Slot address with spaces | Char(20) |
| ParamOut28 | Weight zone flag (“” or “O”) | Char(1) |
| ParamOut29 | Sensitive zone flag (“” or “O”) | Char(1) |
| ParamOut30 | Serial number length | Char(2) |
| ParamOut31 | Lot reference – ost.reflot | Char(30) |
| ParamOut32 | Parcel number in mode ‘Multi parcel detail’ | Char(40) |
| ParamOut33 | Thirdparty ID associated with delivery - lole.sigliv | Char(12) |
| ParamOut34 | Loading position + delivery position | Char(80) |
| ParamOut35 | Imposed lot reference flag (“” or “O”) | Char(1) |
| ParamOut36 | Lot number – lmvtstk.numlot | Number |
| ParamOut37 | Blocked movements number | Number |
| ParamOut38 | Addressed movements number | Number |
| ParamOut39 | Stock level code - lmvtstk.codlnst | Char(1) |