Hi Experts,
Below is the integration code with POS , it compile fine but when i run through AX (through Form) it gives following error
I have also checked parameter to "AllowCrossCompany" YES
private void synchronize()
{
// loginProperty loginProperty;
// OdbcConnection odbcConnection;
int Counter;
Statement statement;
ResultSet resultSet;
str sql, criteria;
SqlStatementExecutePermission perm;
str myUserName;
str myPassword;
str mySQLStatement;
str myConnectionString;
str compId;
CompanyInfo dataArea;
McsSalesLine salesLine,posSaleLine ;
McsSalesTable salesTable, posSaleTable;
SalesId salesid;
SalesId NewsalesId;
CustAccount custAccount;
// CustGroupId custGroup;
CustCurrencyCode currencyCode;
SalesShippingDateRequested shippingDateRequested;
ContactPersonId ContactPersonId;
CustInvoiceId CustInvoiceId;
DimensionDefault DefaultDimension;
LogisticsPostalAddressRecId DeliveryPostalAddress;
CustDlvModeId DlvMode;
CustDlvTermId DlvTerm;
SalesInventLocationId inventLocationId_salesTable;
InventSiteId InventSiteId_salesTable;
// CustInvoiceAccount InvoiceAccount;
NumberSequenceGroupId NumberSequenceGroup;
date ReceiptDateConfirmed;
date ReceiptDateRequested;
int SalesStatus;
SalesTaker WorkerSalesTaker;
str policy,companyId;
container crossCom;
/////////Sales Line//////////////
ItemId itemid;
SalesOrderedQty qty;
SalesUnit SalesUnit;
SalesPrice SalesPrice;
SalesLineAmount lineAmount;
DimensionDefault DefaultDimension_saleline;
TaxGroup DeliveryTaxGroup_BR;
TaxItemGroup DeliveryTaxItemGroup_BR;
int DeliveryType;
DlvModeId DlvMode_saleline;
InventQty InventDeliverNow;
InventRefId InventRefId;
InventRefTransId InventRefTransId;
LedgerDimensionDefaultAccount LedgerDimension;
SalesLineAmount LineAmount_saleline;
SalesLineDisc LineDisc_saleline;
SalesLinePercent LinePercent;
SalesMultiLnDisc MultiLnDisc;
SalesMultiLnPercent MultiLnPercent;
ItemFreeTxt Name;
InventQty QtyOrdered;
SalesCategory SalesCategory;
SalesQty SalesDeliverNow;
SalesPrice SalesPrice_saleline;
SalesOrderedQty SalesQty;
///////////////inventorydimension/////
InventBatchId batchid;
InventLocationId inventLocationId;
InventSiteId inventSiteId;
#AviFiles
//Operation Progress
SysOperationProgress Progress = new SysOperationProgress();
;
//Operation Progress
progress.setCaption("Importing Sales Order");
progress.setAnimation(#AviUpdate);
progress.setTotal(100);
if (odbcConnection)
{ sql = strFmt("SELECT H.ART_INV_NO,H.ART_CUST_NO,H.ART_CUST_SHIP_DATE,H.ART_SALES_MAN,H.ART_POLICY,H.ART_INV_DATE,D.IND_ITEM,D.IND_QTY_ORD,D.IND_ZONE,D.IND_LOCID,D.IND_PRICE, D.IND_DISCOUNT,D.IND_NET_VALUE,D.IND_TAX_CODE,H.ART_FOB,H.ART_SHIP_VIA,H.IS_SYNCHRONIZED,H.ART_FSDN_NO, H.ART_COM_CODE "+
"FROM FSMS_TRN_AR_TRANZ AS H "+
"LEFT OUTER JOIN FSMS_TRN_INV_DTL AS D ON H.ART_INV_NO = D.IND_INV_NO AND H.ART_ZONE=D.IND_ZONE AND H.ART_COM_CODE=D.IND_COM_CODE ",companyCriteria,DestinationServer,DestiantionDBName);
//D.FSD_SO_DATE BETWEEN '"+datetime2str(fromDateTime)+"' AND '"+datetime2str(toDateTime)+"' and FSH_FSD_NO ='2101049386'",companyCriteria,DestinationServer,DestiantionDBName);
//2201000054
///SELECT FSH_FSD_NO,FSH_CUST_NO,FSH_SHIP_DATE,FSH_SALES_MAN,FSH_SO_DATE,FSH_POLICY,FSD_ITEM,FSD_QTY_ORDER,FSD_ZONE,FSD_LOC_ID,FSD_PRICE,FSD_DISCOUNT,FSD_NET_VALUE,FSD_TAX_CODE,FSH_FOB,FSH_SHIP_VIA,d.FSD_BTACH_NO "+
// "FROM FSMS_TRN_FSD_MASTER LEFT OUTER JOIN FSMS_TRN_FSD_DETAIL AS D ON FSH_FSD_NO = FSD_FSD_NO AND FSH_ZONE = FSD_ZONE AND FSH_COM_CODE = FSD_COM_CODE " +
// "WHERE FSD_SO_DATE BETWEEN '2013-09-11 00:00:00' AND ' 2013-09-12 23:23:59'",companyCriteria,DestinationServer,DestiantionDBName);
info(sql);
//Assert permission for executing the sql string.
perm = new SqlStatementExecutePermission(sql);
perm.assert();
//Prepare the sql statement.
statement = odbcConnection.createStatement();
resultSet = statement.executeQuery(sql); //Cause the sql statement to run,
//then loop through each row in the result. //21
while (resultSet.next())
{
NewsalesId =resultSet.getString(1);
custAccount = resultSet.getString(2);
shippingDateRequested =resultSet.getDate(3);//str2Date(resultSet.getString(3),123);
ContactPersonId=resultSet.getString(4);
policy = resultSet.getString(5);
ReceiptDateRequested=resultSet.getDate(6);
//// SalesStatus=resultSet.getInt(6);
/////////////Sales Line ////////////////
itemid = resultSet.getString(7);
qty = resultSet.getReal(8);
inventSiteId = resultSet.getString(9);
inventLocationId = resultSet.getString(10);
SalesPrice = resultSet.getReal(11);
LinePercent=resultSet.getReal(12);
lineAmount = resultSet.getReal(13);
compId = resultSet.getString(19);
info(itemid);
if(Newsalesid != salesid)
{ switch(compId)
{
case "10":
compId = "PCC";
break;
case "20":
compId = "AAE";
break;
case "25":
compId = "AAS";
break;
case "15":
compId = "DJC";
break;
//case "41":
//compId = "PCM";
//break;
//case "35":
//compId = "PCP";
//break;
//case "40":
//compId = "PET";
//break;
}
crossCom = [compId];
dataArea = CompanyInfo::findDataArea(compId);
if (!dataArea.RecId)
//continue;
select crossCompany:crossCom salesLine where salesLine.SalesId == NewsalesId;
if(!salesLine.RecId)
{
//posCustomerTable = POSCustomerTable::find(custTable.AccountNum);
select crossCompany:crossCom posSaleLine where posSaleLine.SalesId == NewsalesId;
if (!posSaleLine.RecId)
{
changeCompany(compId)
{
salesLine = null;
ttsbegin;
this.SyncSalesOrderHeader(NewsalesId,custAccount,shippingDateRequested,ContactPersonId,ReceiptDateRequested,policy,SalesStatus);
// this.updatePOSBitField(NewsalesId,companyId);
Counter=Counter+1;
ttscommit;
}
}
}
else
{
continue;
}
}
this.SyncSalesLines(NewsalesId,Itemid,qty,inventSiteId,inventLocationId,batchid ,
SalesPrice,LinePercent,lineAmount);
salesid = NewsalesId;
progress.setText(strfmt("%1 Sales order Importing", Counter));
Progress.incCount();
}
//Close the connection.
resultSet.close();
statement.close();
}
else
{
error("Failed to log on to the database through ODBC.");
}
}