Requirement :
James sebagai directur perusahaan tidak mau melihat comment workflow yang tersimpan di Form Workflow. James menginginkan informasi workitem dan comment ada diform utama.
Req ini bisa kita kerjakan dengan metode QUERY,VIEW, Query table/view dengan QUERY CLASS
Pertama kita harus membuat QUERY yang terbuat dari Table-table workflow dan tentunya berelasi dengan table document entah itu jurnal,PO atau apapun.
Sebagai contoh disini adalah table SQ.
CREATE QUERY : SQ2WFQuery
SQ berelasi dengan WorkflowTrackingStatusTable,
melalui :
SQ.dataareaId <> WorkflowTrackingStatusTable.ContexCompanyId
SQ.RecId <> WorkflowTrackingStatusTable.ContectRecId
SQ.TableId <> WorkflowTrackingStatusTable.ContextTableId
WorkflowTrackingStatusTable berelasi dengan WorkflowTrackingTable,
melalui :
WorkflowTrackingStatusTable.RecId <> WorkflowTrackingTable.WorkflowTrackingStatusTable
WorkflowTrackingTable berelasi dengan WorkflowTrackingCommentTable
melalui :
WorkflowTrackingTable.RecId <> WorkflowTrackingCommentTable.WorkflowTrackingTable
CREATE VIEW : SQ2WFView
VIEW yang sudah dibuat dengan nama SQ2WFview dengan Query SQ2WFQuery.
Definisikan field mana saja yang akan dibawa sebagai field SQ2WFView
ex : SQnum, TrackingStatus, User, TrackingType, Comment.
Defisinikan Field2 yang akan dipakai dengan cara memasukannnya keGroup
DIform SQTable. Tambah Datasourcenya dari SQ2WFView.
Dikarenkaan source yang kita pakai berasal dari VIEW sehingga kita membutuhkan codes yang akan membuat SQ2WFView berelasi ke SQTable.di Method Exceute Query table SQ2WFView harus didefisikan code berikut :
public void executeQuery()
{
//mendefinisikan variable qbds
QueryBuildDataSource qbds;
//qbds tersebut adalah Datasourcenya sendiri(yang diadd di form)
qbds = this.queryBuildDataSource();
//qbds membersihkan chace range query agar default selalu dalam keadaan kosong
qbds.clearRanges();
//qbds melakukan query seperti "while select" berdasarkan paramater SQTable.SQNum
qbds.addRange(fieldNum(PSMWF2SQtableView, SQNum)).value(SysQuery::value(SQTable.SQNum));
//maka Datasource SQ2WFView berisi hasil Query = While select * from SQ2WFView where SQ2WFView.SQnum == SQTable.SQNum
super();
//setelah super() maka hasil Query ditampilkan di Grid
}
All Archives in this blog may be used for the Junior,Dummies or someone who just started for career at Dynamics Ax ... A Place Where U can Start ur Code - right here ...
Sabtu, 27 April 2019
Senin, 22 April 2019
Relasi antara Worfklow dan Table document
Berikut Relasi antara Workflow dengan Table docment yang memakai workflow:
WorkflowTrackingStatusTable.ContextCompanyId <> [tabledocument].DataAreaId
WorkflowTrackingStatusTable.ContextRecId <> [tabledocument].RecId
WorkflowTrackingStatusTable.ContextTableId <> tabledocument].TableId
Sample :
Asumsi saya mempunyai table dengan nama RFPTable
WorkflowTrackingStatusTable wfstatustable;
WorkflowTrackingTable wftrackingtable;
Description descriptwf;
RFPTable rfpTable;
;
select * from rfpTable
where rfpTable.TransNum == _dfpnumber;
select * from wfstatustable
where wfstatustable.ContextCompanyId == rfpTable.dataAreaId
&& wfstatustable.ContextRecId == rfpTable.RecId
&& wfstatustable.ContextTableId == rfpTable.TableId
&& (wfstatustable.TrackingStatus == WorkflowTrackingStatus::Completed || wfstatustable.TrackingStatus == WorkflowTrackingStatus::Pending);
while select * from wftrackingtable
order by createdDateTime asc
where wftrackingtable.WorkflowTrackingStatusTable == wfstatustable.RecId
&& (wftrackingtable.TrackingType == WorkflowTrackingType::Submission || wftrackingtable.TrackingType == WorkflowTrackingType::Approval)
{
descriptwf += strFmt("%1 (%2).",wftrackingtable.User,wftrackingtable.TrackingType);
}
return descriptwf;
WorkflowTrackingStatusTable.ContextCompanyId <> [tabledocument].DataAreaId
WorkflowTrackingStatusTable.ContextRecId <> [tabledocument].RecId
WorkflowTrackingStatusTable.ContextTableId <> tabledocument].TableId
Sample :
Asumsi saya mempunyai table dengan nama RFPTable
WorkflowTrackingStatusTable wfstatustable;
WorkflowTrackingTable wftrackingtable;
Description descriptwf;
RFPTable rfpTable;
;
select * from rfpTable
where rfpTable.TransNum == _dfpnumber;
select * from wfstatustable
where wfstatustable.ContextCompanyId == rfpTable.dataAreaId
&& wfstatustable.ContextRecId == rfpTable.RecId
&& wfstatustable.ContextTableId == rfpTable.TableId
&& (wfstatustable.TrackingStatus == WorkflowTrackingStatus::Completed || wfstatustable.TrackingStatus == WorkflowTrackingStatus::Pending);
while select * from wftrackingtable
order by createdDateTime asc
where wftrackingtable.WorkflowTrackingStatusTable == wfstatustable.RecId
&& (wftrackingtable.TrackingType == WorkflowTrackingType::Submission || wftrackingtable.TrackingType == WorkflowTrackingType::Approval)
{
descriptwf += strFmt("%1 (%2).",wftrackingtable.User,wftrackingtable.TrackingType);
}
return descriptwf;
Cannot save the record because the Number Sequence already Exist
Ada kalanya saya menemukan system memakai Nomor sequence yang sama/duplicate pada saat menyimpan/create record baru. dan akhirnya sistem sendiri mengeluarkan info
"cannot save the record because the number sequence already exist".
Trouble solving :
Masuk ke menu :
Organization and Administration - Common - Number Squences - Number Sequences
Pilih nomor sequencenya.
Klik tombol Status Listnya.
Form status list akan tampak.
Maka akan kita temukan satu atau beberpa nomor disana.
Nomor-nomor tersebut adalah yang muncul pada saat user create record ditable yang bersangkutan.
Jika memang nomor yang selalu muncul/duplicate pada saat create record itu tidak akan digunakan lagi, kta bisa mendeletenya.
untuk detailnya untuk apa form ini?
saya juga blum tahu. :D
"cannot save the record because the number sequence already exist".
Trouble solving :
Masuk ke menu :
Organization and Administration - Common - Number Squences - Number Sequences
Pilih nomor sequencenya.
Klik tombol Status Listnya.
Form status list akan tampak.
Maka akan kita temukan satu atau beberpa nomor disana.
Nomor-nomor tersebut adalah yang muncul pada saat user create record ditable yang bersangkutan.
Jika memang nomor yang selalu muncul/duplicate pada saat create record itu tidak akan digunakan lagi, kta bisa mendeletenya.
untuk detailnya untuk apa form ini?
saya juga blum tahu. :D
error ax 2012 sysdictfieldgroup object not initialized.
error ax 2012 sysdictfieldgroup object not initialized
Pada saat saya akan test Pengkondisian di Workflow, error ini muncul.
Trouble solving untuk seperti ini bisa dengan menambahkan Field(bebas) di Group Table yang dijadikan parameter di workflow kita.
tambahkan Field apa saya diGroup Auto Report.
Pada saat saya akan test Pengkondisian di Workflow, error ini muncul.
Trouble solving untuk seperti ini bisa dengan menambahkan Field(bebas) di Group Table yang dijadikan parameter di workflow kita.
tambahkan Field apa saya diGroup Auto Report.
Minggu, 14 April 2019
simple Logic for Grouping some records
Check this out :
thanks to Tukang Ojek ASP who create this simple logic.
ListPaymentGenralJournalAccount2V viewPayment;
CustVendAC CustVendAC,lastvalue;
Amount sumAmount;
int i=1;
int numofrecord;
while select viewPayment
where viewPayment.JournalNum == ListPaymentGenralJournalAccount2V.JournalNum
{
CustVendAC = viewPayment.CustVendACcount();
numofrecord += 1;
if(CustVendAC == lastvalue)
{
sumAmount += viewPayment.AccountingCurrencyAmount;
info(strFmt("%1",sumAmount));
}
else if(CustVendAC != lastvalue && i != 1)
{
info("beda");
sumAmount = viewPayment.AccountingCurrencyAmount;
info(strFmt("%1",sumAmount));
}
lastvalue = CustVendAC;
i += 1;
}
thanks to Tukang Ojek ASP who create this simple logic.
ListPaymentGenralJournalAccount2V viewPayment;
CustVendAC CustVendAC,lastvalue;
Amount sumAmount;
int i=1;
int numofrecord;
while select viewPayment
where viewPayment.JournalNum == ListPaymentGenralJournalAccount2V.JournalNum
{
CustVendAC = viewPayment.CustVendACcount();
numofrecord += 1;
if(CustVendAC == lastvalue)
{
sumAmount += viewPayment.AccountingCurrencyAmount;
info(strFmt("%1",sumAmount));
}
else if(CustVendAC != lastvalue && i != 1)
{
info("beda");
sumAmount = viewPayment.AccountingCurrencyAmount;
info(strFmt("%1",sumAmount));
}
lastvalue = CustVendAC;
i += 1;
}
Langganan:
Postingan (Atom)
Erorr CS1963 - An expression tree may not contain a dynamic operation.
Kali ini saya mendapatkan erorr dengan code CS1963, padahal sebelumnya saya sudah mendefinisikan 'var item in Model' di @foreach(var...
-
My code here is to copy Purchase Agreement line from reference Purchase Agreement to new Purchase Agreement. static void PSMCopydirecttoag...
-
If you want to try custom your notification, AX Standard can bring the user to the form where the information exist but when the form was...
-
"Error while setting server report parameters. Error Message: The item ´/DynamicsAx/PurchPurchaseOrderreport.Report4´ cannot be found ...