API RF MVT_SUIV

  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)

Paramètres en entrée

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

Paramètres en sortie

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)