I develop Class to create salesorder, I got comment from my partner and research from youtube and internet I got
public str PowerAutomateCreateSOHeader(DataAreaId Company, str CustomerCode, str SalesPoolID)
{
str returnStr = "";
SalesTable salesTable;
SalesId salesID;
CustTable custTable;
NumberSeq numberSeq;
changeCompany(Company)
{
try
{
ttsbegin;
// Initialize sales order header
salesTable.clear();
salesTable.initValue();
// Validate customer
custTable = CustTable::find(CustomerCode, true);
if (!custTable)
{
throw error(strFmt("Customer %1 not found.", CustomerCode));
}
// Assign mandatory fields
salesTable.CustAccount = CustomerCode;
salesTable.SalesType = SalesType::Sales;
salesTable.SalesPoolID = SalesPoolID; // Fixed to 'SB1'
salesTable.CurrencyCode = 'THB'; // Example, adjust if needed
salesTable.InventSiteId = 'MOT'; // Example, adjust if needed
// Generate SalesId using number sequence
numberSeq = NumberSeq::newGetNum(SalesParameters::numRefSalesId(), true);
if (!numberSeq)
{
throw error("Number sequence for SalesId could not be retrieved. Check setup in Sales parameters.");
}
salesTable.SalesId = numberSeq.num();
// Insert sales order header using standard API
SalesTableForm::salesCreateOrder_WriteServer(
salesTable,
'', // salesAgreementId
false, // replacementOrder
NoYes::No, // copyRMALines
false, // isCopyFromTemplate
0 // templateRecId
);
salesID = salesTable.SalesId;
ttscommit;
returnStr = strFmt("Sales order created successfully: %1", salesID);
info(returnStr);
}
catch (Exception::Error)
{
ttsabort;
throw error("Error creating sales order header. Verify number sequence setup and required fields.");
}
}
return returnStr;
}
// end method