Quantcast
Channel: Microsoft Dynamics 365 Community
Viewing all articles
Browse latest Browse all 51311

Lançar lista de separação e iniciar roteiro de separação para ordem de transferência

$
0
0

Olá Pessoal,
Tudo bem?

Pessoal estou compartilhando com vocês o processo para realizar o lançamento de lista de separação, inicar roteiro de lista de separação e atualizar todas as linhas do roteiro por código X++ para o Microsoft Dynamics AX 2012 caso precisem.

publicboolean init(){boolean ret =true;
 
    ret = this.validate();
 
    if(ret){//Post PickingList
        this.pickingList();
        //Start Router from Picking list
        wmsPickingRouteID = this.wmsPickingRouteStart();
        //Update all from Router
        this.pickAllLines(wmsPickingRouteID);
    } 
    return ret;
}
/// <summary>/// Realiza o lançamento da lista de separação/// </summary>publicvoid pickingList(){
    InventTransferParmTable     localInventTransferParmTable;
    InventTransferMultiPick     localInventTransferMultiPick = InventTransferMultiPick::construct();
    ;
 
    localInventTransferParmTable.TransferId=   inventTransferId; //Provide transferId
    localInventTransferParmTable.EditLines=   NoYes::Yes;
    localInventTransferParmTable.AutoReceiveQty=   NoYes::Yes;
    localInventTransferParmTable.TransDate=systemDateGet();
    localInventTransferParmTable.UpdateType=   InventTransferUpdateType::PickingList;
    localInventTransferParmTable.PickUpdateQty=   InventTransferPickUpdateQty::All ;
    localInventTransferMultiPick.runUpdate(localInventTransferParmTable);
}
/// <summary>/// Iniciar roteiro de separação/// </summary>/// <returns>/// Retorna o nr. do roteiro/// </returns>public WMSPickingRouteID wmsPickingRouteStart(){
    WMSPickingRoute         localWMSPickingRoute;
    WMSPickingRouteStart    localWMSPickingRouteStart;
 
    //Buscar roteiro vinculado ao registro da lista de separaçãoselectfirstOnly PickingRouteID, expeditionStatus
        from localWMSPickingRoute
        where localWMSPickingRoute.transType== InventTransType::TransferOrderShip&& localWMSPickingRoute.transRefId==  inventTransferId;
 
    if(localWMSPickingRoute.PickingRouteID){//Verificar se esta com o status ativadoif(localWMSPickingRoute.expeditionStatus== WMSExpeditionStatus::Activated){
            localWMSPickingRouteStart =new  WMSPickingRouteStart();
            localWMSPickingRouteStart.parmWMSPickingRouteId(localWMSPickingRoute.PickingRouteID);
            localWMSPickingRouteStart.parmWorker(DirPersonUser::findUserWorkerReference());
            localWMSPickingRouteStart.run();
        }} 
    return localWMSPickingRoute.PickingRouteID;
}
/// <summary>/// Atualizar todas as linhas do roteiro da lista de separação/// </summary>/// <param name="_pickingRouteID">/// Nº do roteiro a ser atualizado/// </param>publicvoid pickAllLines(WMSPickingRouteID _pickingRouteID){
    List            list =new List(Types::String);
    WMSPickingRoute localWMSPickingRoute;
 
    //verificar se o roteiro foi informadoif(!_pickingRouteID){//Buscar pelo nº da ordem de transferênciaselectfirstOnly PickingRouteID, expeditionStatus
            from localWMSPickingRoute
                where localWMSPickingRoute.transType== InventTransType::TransferOrderShip&& localWMSPickingRoute.transRefId==  inventTransferId;
    }else{//Buscar pelo nº do roteiroselectfirstOnly PickingRouteID, expeditionStatus
            from localWMSPickingRoute
                where localWMSPickingRoute.PickingRouteID== _pickingRouteID;
    } 
    //Verificar se o roteiro esta com o status iniciadoif(localWMSPickingRoute && localWMSPickingRoute.expeditionStatus== WMSExpeditionStatus::Started){
        list.addEnd(localWMSPickingRoute.PickingRouteID);
        WMSPickingRoute::finishMulti(list.pack()); 
        wmsDeliverPickedItems::checkDeliverPickedItems(localWMSPickingRoute.PickingRouteID,list.pack());
    }}

Abraços,
Juliano Bachesque


Viewing all articles
Browse latest Browse all 51311

Trending Articles