linked SQL servers


USE master;
GO
EXEC sp_addlinkedserver
N'SQLServer',
N'SQL Server';
GO

INSERT INTO [Database].[dbo].[EVENTINBOXDATA]
([INBOXID]
,[DATATYPE]
,[DATA]
,[RECVERSION]
,[RECID])
(SELECT [INBOXID]
,[DATATYPE]
,[DATA]
,[RECVERSION]
,[RECID]
FROM [AXSQL].[OtherDatabase].[dbo].[EVENTINBOXDATA] WHERE [INBOXID] = 2832288)

Kullanıcı verilerini aktarma

SYSPERSONALIZATION sık kullanılanların saklandığı tablo
SYSLASTVALUE kullanıcının özelleştirmelerinin saklandığı tablo

UPDATE [dbo].[SYSLASTVALUE]
   SET [USERID] = 'yeniuserid'      
 WHERE [USERID] = 'eskiuserid'
GO

UPDATE [dbo].[SYSPERSONALIZATION]
   SET [USERID] = 'yeniuserid'
 WHERE [USERID] = 'eskiuserid'
GO

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/

iş akışına onay/harcama sınırı parametresi ekleme

WorkflowDocument classına aşağıdaki metodlar eklenmeli

public class yourClassName extends WorkflowDocument
{
}
> Class metodları
protected void checkContext(tableId    _tableId,
                            RecId      _recId)
{;
    if (_tableId != tablenum(DRTExpenseTable)) // Your table name
    {
        // Workflow context table id reference: %1 is not valid
        throw error(strfmt("@SYS107963", _tableId));
    }

    if (_recId == 0)
    {
        // Workflow context record id is zero.
        throw error(strfmt("@SYS107964"));
    }

}

public PurchReqSpendingLimitValueMST parmSpendingLimit(CompanyId _companyId,
                                           tableId   _tableId,
                                           RecId     _recId)
{
    YourTableName        yourTableName = YourTableName::findRecId(_recID);
    HRPLimitTypeTable           limitTypeTable;
    HRPLimitTableMap            limitTableMap;
    AmountMST                   limitValue;
    ;
    this.checkContext(_tableId, _recId);
    while select limitTypeTable
        where limitTypeTable.LimitType == HRPLimitType::Spending &&
              limitTypeTable.DocumentType == HRPLimitDocumentType::CustCredit
    {
        limitTableMap = HRPLimitTableRelationship::getActiveLimitEmpl(limitTypeTable.LimitId, EmplTable::userId2EmplId(yourTableName.createdBy));
        limitValue = max(limitValue,Currency::mstAmount(limitTableMap.LimitValue, limitTableMap.CurrencyCode));
    }
    return limitValue;
}

siparişte madde kodu üzerinde arama

satış siparişine satır eklerken madde kodu alanında sizin belirleyebileceğiniz alanlar üzerinden arama yaptırabilirsiniz.
Product Name alanını eklerseniz, muhtemel stok adının bir kısmını yazıp Tab tuşuna basarsanız ve tek kayıt dönüyorsa otamatik olarak seçilir. birden fazla sonuç dönerse bir dialog çıkıyor ve seçiyorsunuz. bunu müşteri ve iş ilişkisi için de yaptırabilirsiniz.

çok güzel anlatılmış.

Configure The Product Search To Quickly Filter Products At Order Entry