bir ambardaki eldeki stok miktarına göre başka bir ambara transfer emri oluşturma

static void InventJournalFromInventOnHand(Args _args)
{
    Query                       q;
    QueryBuildDataSource        qbdsInventSum;
    QueryBuildDataSource        qbdsInventDim;
    QueryRun                    queryRun;

    InventSum                   inventSum;
    InventDim                   inventDim, tmpInventDim, toInventDim;

    InventJournalTable          inventJournalTable;
    InventJournalTrans          inventJournalTrans;
    InventLocationId            fromInventLocationId = "MRS_HASAR", toInventLocationId = "MRS_SATIS";
    ;

    ttsbegin;

    InventJournalTable.clear();
    InventJournalTable.initValue();
    InventJournalTable.initFromInventJournalName("YourTransferJournalName");
    InventJournalTable.insert();

    q = new Query();

    qbdsInventSum  = q.addDataSource(tablenum(InventSum));
    // RANGES
    //qbdsInventSum.addRange(fieldNum(InventSum, ItemID)).value(queryValue("TIM0288"));
    // GROUP BY
    qbdsInventSum.addGroupByField(fieldNum(InventSum, ItemID));
    // SUM
    qbdsInventSum.addSelectionField(fieldNum(InventSum, PhysicalInvent),    SelectionField::Sum);
    qbdsInventSum.addSelectionField(fieldNum(InventSum, PostedQty),         SelectionField::Sum);
    qbdsInventSum.addSelectionField(fieldNum(InventSum, Received),          SelectionField::Sum);
    qbdsInventSum.addSelectionField(fieldNum(InventSum, Deducted),          SelectionField::Sum);
    qbdsInventSum.addSelectionField(fieldNum(InventSum, Registered),        SelectionField::Sum);
    qbdsInventSum.addSelectionField(fieldNum(InventSum, Picked),            SelectionField::Sum);
    // INVENTDIM
    qbdsInventDim = qbdsInventSum.addDataSource(tablenum(InventDim));
    qbdsInventDim.relations(true);
    // RANGES
    qbdsInventDim.addRange(fieldNum(InventDim, InventLocationId)).value(queryValue(fromInventLocationId));
    // GROUP BY
    qbdsInventDim.addGroupByField(fieldNum(InventDim, configId));
    qbdsInventDim.addGroupByField(fieldNum(InventDim, InventSizeId));
    qbdsInventDim.addGroupByField(fieldNum(InventDim, InventColorId));
    qbdsInventDim.addGroupByField(fieldNum(InventDim, InventSiteId));
    qbdsInventDim.addGroupByField(fieldNum(InventDim, InventLocationId));
    qbdsInventDim.addGroupByField(fieldNum(InventDim, InventBatchId));
    qbdsInventDim.addGroupByField(fieldNum(InventDim, inventSerialId));
    qbdsInventDim.addGroupByField(fieldNum(InventDim, wMSLocationId));

    queryRun  = new QueryRun(q);

    while (queryRun.next())
    {
        inventSum = queryRun.get(tablenum(InventSum));
        inventDim = queryRun.get(tablenum(inventDim));

        if ( inventSum.physicalInvent() > 0 )
        {
            info(strfmt("%1 %2 %3", inventSum.ItemId, inventSum.physicalInvent(), tmpInventDim.InventBatchId));

            inventJournalTrans.clear();
            inventJournalTrans.initFromInventJournalTable(inventJournalTable);
            inventJournalTrans.ItemId       = inventSum.ItemId;

            inventJournalTrans.Qty          = inventSum.physicalInvent();

            inventJournalTrans.TransDate    = today();

            tmpInventDim.clear();
            tmpInventDim.configId           = inventDim.configId;
            tmpInventDim.InventColorId      = inventDim.InventColorId;
            tmpInventDim.InventSizeId       = inventDim.InventSizeId;

            tmpInventDim.InventSiteId       = inventDim.InventSiteId;
            tmpInventDim.InventLocationId   = inventDim.InventLocationId;
            tmpInventDim.wMSLocationId      = inventDim.wMSLocationId;

            tmpInventDim.InventBatchId      = inventDim.InventBatchId;
            tmpInventDim.inventSerialId     = inventDim.inventSerialId;

            tmpInventDim                    = InventDim::findOrCreate(tmpInventDim);

            inventJournalTrans.InventDimId  = tmpInventDim.InventDimId;

            toinventdim                     = tmpInventDim;
            toinventdim.InventLocationId    = toInventLocationId;
            toinventdim                     = inventdim::findOrCreate(toinventdim);

            inventJournalTrans.ToInventDimId = toinventdim.inventDimId;

            if(inventJournalTrans.InventDimId != inventJournalTrans.ToInventDimId)
                inventJournalTrans.insert();
            else
                throw error ("inventdim tutarsız");
        }
    }
    ttscommit;
}

Kayıt zaten var hatası

“Cannot create a record in (table). The record already exists.”

tableid yi bulmak için, yada AOT tan table properties
static void GetTableIdFromNameJob(Args _args)
{
info(strFmt(“%1″, tableName2id(”

“))); }

sql mgt studio ‘yu açalım

select max(recid) from

Edit table SYSTEMSEQUENCES

 SELECT ID, NEXTVAL, MINVAL, MAXVAL, CYCLE, NAME, TABID, DATAAREAID, RECVERSION, RECID FROM SYSTEMSEQUENCES WHERE (TABID = 1462) 

NEXTVAL değerini arttırıp AOS u restart edelim. (the changes will not take affect until you restart the AOS)

Kaynak : https://community.dynamics.com/