What's the purpose of the SalesInvoiceTMP & SalesInvoiceHeaderFooterTMP tables and can they be purged?
Is there a job already in AX that I can run to purge them routinely?
We had to add some logic to them and we're encountering a few issues. I'd like to delete them while we work out our issues.
I saw another post that said you could delete them, but they recommended doing it during a slow time so I don't delete any data that is being written to it. This makes sense and I'm planning to create a job that runs each nite.
What's the purpose of the SalesInvoiceTMP & SalesInvoiceHeaderFooterTMP tables and can they be purged?
RE: Two errors while endind works order in AX2009
Do you have any additional info on how this corrected the problem.
Two errors while endind works order in AX2009
Hi everyone,
I'm getting two errors while trying to end works order:
1. Financial updating quantity must have same sign in the posting unit and the stock unit.
2. No financial data is being updated in the stock unit.
As a result I cannnot end this works order. Can anyone help? Thanks!
RE: Errors when importing solution to Visual Studio
On the same link that I provided above, there is a section called application updates. The one running on platform 3 is application version 1611
The platform 1 version is running application version 7.01
Is this what you are referring to? If not ill try to locate the information if it will help solve the issue. How can I go about upgrading the code to work with the new application? And by that I mean, is it just simply a manual process where I go back and alter my code, or does Dynamics have a feature to automatically adjust according to the application version?
RE: How to pass list of class in API Web service
This is SalesLine Class
[DataContractAttribute]
public class EDISalesOrderLineContract
{
str _SalesOrderNumber;
str _ItemNumber;
int _OrderedSalesQuantity;
str _ShippingSiteId;
str _ShippingWarehouseId;
[DataMemberAttribute]
public str SalesOrderNumber( str Value = _SalesOrderNumber)
{
_SalesOrderNumber = Value;
return _SalesOrderNumber;
}
[DataMemberAttribute]
public str ItemNumber( str Value = _ItemNumber)
{
_ItemNumber = Value;
return _ItemNumber;
}
[DataMemberAttribute]
public int OrderedSalesQuantity( int Value = _OrderedSalesQuantity)
{
_OrderedSalesQuantity = Value;
return _OrderedSalesQuantity;
}
[DataMemberAttribute]
public str ShippingSiteId( str Value = _ShippingSiteId)
{
_ShippingSiteId = Value;
return _ShippingSiteId;
}
[DataMemberAttribute]
public str ShippingWarehouseId( str Value = _ShippingWarehouseId)
{
_ShippingWarehouseId = Value;
return _ShippingWarehouseId;
}
}
This is My Header Class
using System.Collections;
[DataContractAttribute]
public class EDISalesOrderDataContract
{
str _SalesOrderNumber;
str _CurrencyCode;
str _InvoiceCustomerAccountNumber;
str _OrderingCustomerAccountNumber;
str _LanguageId;
str _DataAreaId;
List SalesLines;
[DataMemberAttribute]
public str ParmSalesOrderNumber( str Value = _SalesOrderNumber)
{
_SalesOrderNumber = Value;
return _SalesOrderNumber;
}
[DataMemberAttribute]
public str ParmCurrencyCode( str Value = _CurrencyCode)
{
_CurrencyCode = Value;
return _CurrencyCode;
}
[DataMemberAttribute]
public str ParmInvoiceCustomerAccountNumber( str Value = _InvoiceCustomerAccountNumber)
{
_InvoiceCustomerAccountNumber = Value;
return _InvoiceCustomerAccountNumber;
}
[DataMemberAttribute]
public str ParmOrderingCustomerAccountNumber( str Value = _OrderingCustomerAccountNumber)
{
_OrderingCustomerAccountNumber = Value;
return _OrderingCustomerAccountNumber;
}
[DataMemberAttribute]
public str ParmLanguageId( str Value = _LanguageId)
{
_LanguageId = Value;
return _LanguageId;
}
[DataMemberAttribute]
public str ParmDataAreaId( str Value = _DataAreaId)
{
_DataAreaId = Value;
return _DataAreaId;
}
[DataMemberAttribute]//,
AifCollectionTypeAttribute(Types::Class, classStr(EDISalesOrderLineContract))]
AifCollectionTypeAttribute("return",Types::Class, classStr(EDISalesOrderLineContract))]
public List SalesLines( List Value = SalesLines)
{
SalesLines = Value;
return SalesLines;
}
}
====================================================
This is my service code
public str Create(EDISalesOrderDataContract _SalesOrder)
{
str ret = strFmt("%1-%2-%3-%4-%5",_SalesOrder.ParmSalesOrderNumber(),_SalesOrder.ParmOrderingCustomerAccountNumber(),
SalesOrder.ParmInvoiceCustomerAccountNumber(), SalesOrder.ParmCurrencyCode(), _SalesOrder.ParmDataAreaId());
try
{
AxSalesTable stc = new AxSalesTable();
AxSalesLine slc = new AxSalesLine();
EDISalesOrderLineContract sl;
stc.parmCurrencyCode(_SalesOrder.ParmCurrencyCode());
stc.parmInvoiceAccount(_SalesOrder.ParmInvoiceCustomerAccountNumber());
stc.custAccount_CustTableRecord(CustTable::find(_SalesOrder.ParmOrderingCustomerAccountNumber()));
stc.parmLanguageId(_SalesOrder.ParmLanguageId());
stc.Save();
ret = stc.parmSalesId();
List SLListTemp;// = new List(Types::Class);
SLListTemp = _SalesOrder.SalesLines();
ListIterator iterator = new ListIterator(SLListTemp);
while(iterator.more())
{
InventDim inventDim;
sl = iterator.value();
InventDim.inventSiteId = sl.ShippingSiteId();
InventDim.InventLocationId = sl.ShippingWarehouseId();
slc.parmSalesId(stc.parmSalesId());
slc.parmItemId(sl.ItemNumber());
slc.parmQtyOrdered(sl.OrderedSalesQuantity());
slc.parmInventDimId(InventDim::findOrCreate(InventDim).inventDimId);
slc.save();
ret = strFmt(";%1-%2-%3", ret, sl.ItemNumber(), sl.OrderedSalesQuantity());
iterator.next();
}
return ret;
//return stc.parmSalesId();
}
catch
{
//return "Error aa gya";
ret = strFmt("Error aa gya bhai - %1",ret);
return ret;
}
}
-----------------------------
RE: PO & PR reference
Hi Paranjothi
Thanks for the reply.
Yes I can check it one by one, but I need to check more than 400 items so how can I generate the PR report including PO's or Vice versa.
Regards
Zafar
RE: Errors when importing solution to Visual Studio
Try building ApplicationSuite package instead of building your solution alone. And also other packages if they have any customization.
RE: What's the purpose of the SalesInvoiceTMP & SalesInvoiceHeaderFooterTMP tables and can they be purged?
As the names indicate these to do with sales invoice report.
Temporary tables store data the same way as regular tables, except that they keep data only when the object exists during code execution. In other words, when the object is finalized, then all data from the temp tables will be dropped.
There are two common situations where temp tables can be applied:
- As a Datasource for a form or report, where the original data is too complex to be easily queried.
- As temporary storage during complicated processing, to hold the results midway through the process.
So TMP tables are used to temporarily hold data e.g in order to do validations. (Its not a tempDB and the records will be deleted once the transaction completes).
The useExistingReportData method in SalesInvoiceDP class uses this statement Delete_from Table to delete records from the table e.g. see the salesInvoiceHeaderFooterTmp.delete() statement. When data is inserted under a userConnection, it is automatically deleted when the report is finished.
In a test system you can delete the data that is stored currently in your temp table using alt+F9 from the table browser.
This is an older related post https://community.dynamics.com/ax/f/33/t/184536
“SalesInvoiceTmp” has 200+ column,s so if you add anymore for customisation then you may run into table buffer problems - last time I looked the max was 254 columns in SalesInvoiceTmp but that was sometime back. The Default maximum buffer-size in AOS settings is 24KB try changing it to 48KB its unlikely to cause a problem.
You may also need to reset the AX user data and refresh the AOT Elements
(This report is not the most elegant. The default Sales Invoice report approach is simple: a big table with only one column is used as a container-element. The table has some rows. In every row one report-element is embedded, mostly tables. With this solution it is possible to print the elements one by one.
The reason why a table is used as container-element is that the table which is used as container element can be bigger than the paper size. When printing the report, the paper size which was set in the report properties is used correctly, and the report-layout is not negatively affected by unwanted page breaks.
The downside of this solution is (and thus why only one dataset is used) is that you have to assign a dataset to the table used as container element. For the elements inside this table you cannot assign other datasets than that one used in the container element table. This is the reason why Sales Invoice report just as one dataset. This a limitation, which makes report designers work a lot of harder. The move to SSRS reports form X++ was problematic at RTM - it depends on which Ax version you are now in how many of those limitations still persist.)
RE: Self signed certificate for Async Server
If this is not a single box environment, you also need to add this certificate to the remote server's trusted CAs. This is the price for using self signed certs, they are not trusted...
Self signed certificate for Async Server
RE: Error while adding DialogField of type 'str' to a dialog
Hi Martin,
Yes. I have used an EDT in current version. I just wanted to know if it excepts name of an EDT it should have thrown exception in AX 2012 as well.
Error while adding DialogField of type 'str' to a dialog
I had code for creating a dialog with dialog field of type 'str' in a custom class in AX2012. It worked fine in AX 2012, after upgrading the code to update3(AX 7) the same code gave an exception at DialogField's init method . No enum value in 'Types' matching 'str' is found.
The code used was dialogField1 = dialog.addField(identifierStr(str), "@AVA108");
As mentioned above it worked fine in AX 2012 so i have created a job using DialogField's init method from which this exception was thrown, it gave String as output in AX2012.
Types baseType;
identifierName typeName;
typeName = identifierStr(str);
baseType = str2enum(baseType, typeName);
info(enum2Value(baseType));
I have resolved this by using an extended type instead of primitive type. But i would like to know why this exception has been thrown.
Thanks in advance.
RE: AP Open Payment Journal Post and Transfer never finishes
Hello Konrad,
Did you already have a developer looking into this?
Have you tried using the post and transfer posting option? Does this make any difference?
Best regards,
Ludwig
AP Open Payment Journal Post and Transfer never finishes
After over six months live we have a AP Open Payment journal with checks printed that will not finish posting. It gets down to 5 seconds left and then seems to recycle through entries it has already been through. The journal validates normally and the checks printed fine. No error messages.
The journal prints fine without a problem, totals balance.
Any idea of what could be the problem?
Thanks
Konrad
Scheduling a batch job
Hello,
I wold like to schedule batch job which must run on desired date & time without recurrence. I didn't find such code on web. could anyone please share this code?
Thanks in advance.
Regards,
Raziq.Ali
RE: AP Open Payment Journal Post and Transfer never finishes
Ludwig,
Yep, I am the "developer". It was using the post and transfer. Assuming it is near the end with the under 5 seconds remaining, all the transactions look fine and the report and checks were fine. Tough to diagnose errors without an error to break at. They all have AP CD voucher numbers as well.
Thanks
Konrad
different appointments for the same load TMS
Hi friends.. can you help me please.. In Transportation Management System (TMS), how can i create different appointments for the same load? Thanks
Shipment Created datetime
Hello Experts,
I am attempting to find where the created date time is stored for when a shipment is created (when an order is released to warehouse) in AX2012 R3 CU10. There isn't a CREATEDDATETIME field in the WHSSHIPMENTTABLE so I am wondering if anyone knows how/where to find this information?
Any help is appreciated!
Thanks,
Jeff
RE: AP Open Payment Journal Post and Transfer never finishes
Hello Konrad,
To be honest, I have not seen or heard something similar before. I also have not found a hotfix or at least a hint on LCS. So you possibly have to get the MS support involved here.
The only thing I can help you with is a workaround how to create the postings manually outside of the journal that you created to get the transactions posted and settled. Yet, I believe that your finance people have already done that if this happened already some months ago.
Best regards,
Ludwig
RE: Cannot firm 'Planned kanban'. A kanban rule with replenishment strategy 'Scheduled' was not found.
Thanks for responding so immediately...FPAX1990
Yeah...you are right. I debugged and found that its the same problem I am having. Production flow (picking activity) is from one warehouse but the planned order is getting created with another warehouse. The picking activity setup is very accurate so have to figure out from where the planned order is picking another warehouse. Any ideas on this?