zoukankan      html  css  js  c++  java
  • AX 2012 PurchCopying

    static void Job63(Args _args)
    {
    PurchCopying purchCopying = PurchCopying::construct(SalesPurchCopy::CopyAllLines);
    TmpFrmVirtual tmpFrmVirtualLines;
    TmpFrmVirtual tmpFrmVirtualHeader;

    PurchTable purchTableFrom = PurchTable::find('PO-000055');
    PurchLine purchLineFrom;

    PurchTable purchTableTo = PurchTable::find('PO-000057', true /*not good selectforupdate within transaction, but otherwise standart 2012R2 work with error */);

    List tmpFrmVirtualLinesList = new List(Types::Record);
    List tmpFrmVirtualHeaderList = new List(Types::Record); 
    PurchCopyingPurchTableContract contract;

    Qty qtyFactor = 1;
    NoYes reverseSign = NoYes::No;
    NoYes recalculateAmount = NoYes::No;
    NoYes copyMarkup = NoYes::No;
    NoYes copyPrecisely = NoYes::No;
    NoYes deleteLines = NoYes::No;


    void writeTmpFrmVirtual(TmpFrmVirtual _tmpFrmVirtual,
    tableId _tableId,
    recId _recId,
    Num _id,
    LineNum _lineNum = 0,
    TransDate _transDate = systemdateget(),
    Qty _qty = 0)
    //FormsPurchCopyingMethodswriteTmpFrmVirtual
    {
    _tmpFrmVirtual.TableNum = _tableId;
    _tmpFrmVirtual.RecordNo = _recId;
    _tmpFrmVirtual.Id = _id;
    _tmpFrmVirtual.LineNum = _lineNum;
    _tmpFrmVirtual.TransDate = _transDate;
    _tmpFrmVirtual.Qty = _qty;

    _tmpFrmVirtual.write();
    }
    ;
    // if we want to copy with header.
    //writeTmpFrmVirtual(tmpFrmVirtualHeader,
    // purchTableFrom.TableId,
    // purchTableFrom.RecId,
    // purchTableFrom.PurchId);
    //tmpFrmVirtualHeaderList.addEnd(tmpFrmVirtualHeader);
    while select purchLineFrom
    where purchLineFrom.PurchId == purchTableFrom.PurchId
    {
    tmpFrmVirtualLines.clear();
    tmpFrmVirtualLines.initValue();
    writeTmpFrmVirtual(tmpFrmVirtualLines,
    purchLineFrom.TableId,
    purchLineFrom.RecId,
    purchLineFrom.PurchId,
    purchLineFrom.LineNumber,
    systemdateget(),
    purchLineFrom.PurchQty);
    tmpFrmVirtualLinesList.addEnd(tmpFrmVirtualLines);
    }

    contract = PurchCopyingPurchTableContract::construct(); 
    contract.parmCallingTable(purchTableTo);
    contract.parmPackedTmpFrmVirtualLines(tmpFrmVirtualLinesList.pack());
    contract.parmPackedTmpFrmVirtualHeader(tmpFrmVirtualHeaderList.pack());
    contract.parmQtyFactor(qtyFactor);
    contract.parmReverseSign(reverseSign);
    contract.parmRecalculateAmount(recalculateAmount);
    contract.parmCopyMarkup(copyMarkup);
    contract.parmCopyPrecisely(copyPrecisely);
    contract.parmDeleteLines(deleteLines);

    purchCopying.initParameters(contract);
    purchCopying.copy(); // transaction will created inside method
    }

  • 相关阅读:
    Java中的IO操作和缓冲区
    Java是否还能再辉煌十年?
    Java的字符串操作
    WordCount(Java实现)
    自我介绍+软工5问
    数据库系统第六章【关系数据理论】(B站视频)
    ini 配置文件读取程序(C语言)
    epoll介绍 实例
    Blizzardhash算法oneway hash
    pychartdir模块安装
  • 原文地址:https://www.cnblogs.com/fogfog/p/6077669.html
Copyright © 2011-2022 走看看