Our support engineers have assembled the top recommended solutions for you.
Microsoft Dynamics AX 2012CRM Connector in Microsoft Dynamics AX 2012Financials Management in Microsoft Dynamics AX 2012Upgrading to Microsoft Dynamics AX 2012
Microsoft Dynamics AX 2009
Application Object Server (AOS)
Enterprise Portal and Role Centers
Inventory Costing in Microsoft Dynamics AX 2009
SSRS and SSAS Integration
Customizing reports post CU3 causes Parameter errors due to the update to TradeDocumentReportContract (which is inherited through, for example, PurchPurchaseOrderContract -> PurchPurchaseOrderDP for the PSAPurchaseOrder or PurchPurchaseOrder reports). The following properties were added to TradeDocumentReportContract: TaxUnrealizedDocuPrintHeader printHeader; TaxUnrealizedDocuPrintLocation location; TaxUnrealizedDocuText miscText; TaxUnrealizedDocuProdType prodType;
Now, when I go into the PSAPurchaseOrderReport in Visual Studio and refresh both Datasets (PurchPurchaseOrderDS & PurchPurchaseOrderLine), it brings in all four parameters for both sets, effectively adding EIGHT extra parameters to the report.
PurchPurchaseOrderDS_Location PurchPurchaseOrderDS_MiscText PurchPurchaseOrderDS_PrintHeader PurchPurchaseOrderDS_ProdType PurchPurchaseOrderLine_Location PurchPurchaseOrderLine_MiscText PurchPurchaseOrderLine_PrintHeader PurchPurchaseOrderLine_ProdType
It all builds and compiles fine, but when I attempt to run the report after deploying it I get an error such as:
The 'PurchPurchaseOrderDS_Location' parameter is missing a value
I'm dealing with an out-of-the-box update to CU3, and the default report(s) don't seem to be updating to accommodate this with CU3. Is this intended and we missed something? Did Microsoft miss something? Can anyone else confirm this?
-Visual Studio tools for AX versions- 6.0.947.0
Thanks for your help!
My previous guess was right: setting up the report fields in a pre-CU3 server then exporting/importing the report to a post-CU3 server works. All the fields show up in VS and you can still edit the report. After deploying, it runs just fine.
I suggest this as a workaround until it's fixed.
Thank goodness for this post, you guys saved my hide.
I added a field to WMSPickingList_OrderPick and could never run it again. "The 'WMSPickingList_OrderPickDS_MiscText' parameter is missing a value.
I used Jesper's suggestion above, along with Andy's feedback on it. I went to the particular report class in question: WmsPickingList_OrderPickContract and copy/pasted the method parmMiscText from TradeDocumentReportContract, and commented out the DataContractAttribute line.
Had to do the same for parmPrintHeader, and maybe location, not sure.
Presto, the report runs!
Thank you very much for sharing, everyone! This was a good discussion!
I've run into more situations like this, and I've concluded the BEST way to go about this (for me anyway) is to:
1) Just update the data source in CU3.. get the headache over with
2) Set all the new parameters to allow blank = true and nullable = true.
3) Usually the report runs then, but sometimes not. I then open the related default AX report (if not a custom report) and make sure all my parameters share similar properties, namely the "allow blank" and "nullable"
4) If all parameter properties are the same and it STILL wont run, usually that means something is messed up server side... and this is the part that took me FOREVER to realize:
5) Go to your report server reports folder (http://myserver/Reports) and open the Dynamics AX folder.
6) Locate the report in question, click the down arrow and click Manage.
7) Click the Parameters Tab
8) Verify all the problem Parameters are checked as "Has Default" and "Null".
Usually one of the above things fixes the report and I can finally run it in AX. If you end up fixing things server side, make sure you Restore that report in AX to get the changes so re-deploying later doesn't override it again... (yes I did that too).
I overlooked the fact that each of the Extended Data Types above has the following properties:
CountryRegionCodes = TH
ConfigurationKey = TaxThailandGovCertification
Our company is all set up for English/USA. Shouldn't these be turned off then? Why is the dataset refresh pulling them in?
I've found this key in the License Configuration:
General ledger -> Sales tax -> Thailand government certification
It was enabled by default (?), but even after turning it off and synchronizing the database I have the same behavior when refreshing report datasets.
** Also restarted the AOS, still doing it.
I've also had this issue. Contact MS Support and they recommended updating the properties for the parameter in VS by setting Nullable = True and Blank = True. This seemed to correct the report for the support person I was working with but it didn't work in my environment. Possible it will help in your environment. I updated my ticket with MS for additional help but so far none has been offered.
Thanks for the reply,
I did as you/MS suggested and changed the Nullable & Allow Blank Parameter properties in VS to True, but it still didn't work for me either. When I try to run the report, the debugger pops up with the following:
Error executing code: Wrong argument types in variable assignment.
(C)\Classes\TradeDocumentReportContract\parmLocation - line 13
(C)\Classes\SysOperationAttributedDataMemberInfo\setPropertyValue - line 23
(C)\Classes\SrsReportRdpDataMemberInfo\setPropertyValue - line 26
(C)\Classes\SysOperationDataContractInfo\unpackDataContractObject - line 105
(C)\Classes\SysOperationDataContractInfo\unpackDataContractObject - line 53
(C)\Classes\SysOperationController\unpackDataContractInfoObjects - line 30
(C)\Classes\SysOperationController\unpack - line 67
(C)\Classes\SrsReportRunController\unpack - line 15
(C)\Classes\xSysLastValue\getLast - line 29
(C)\Classes\SysOperationController\loadFromSysLastValue - line 24
(C)\Classes\SysOperationController\getDataContractInfoObjects - line 10
(C)\Classes\SrsReportRunController\parmReportContract - line 14
(C)\Classes\SrsPrintMgmtController\init - line 18
(C)\Classes\SrsPrintMgmtFormLetterController\init - line 16
(C)\Classes\SrsPrintMgmtFormLetterController\startOperation - line 12
(C)\Classes\PSAPurchaseOrderController\main - line 19
Error: Symbol "location" was not found.
If you dont need this functionality, and I guess you dont, then you can modify the Class:
TradeDocumentReportContract. In the methods: parmLocation, parmMiscText, parmPrintHeader and
parmProdType - commemt out the DataMemberAttribute line in each method. Then you will be able
to delete the parameter in VS and refresh without getting them again.
I've tried this already. It looks like some reports have been updated to use the new parameters, and some haven't. When I tried to do a full CIL compile, I found that SalesPackingSlip was modified to encorporate these new parameters. I'm not sure what else I'll all break when removing them.
What I plan to do today is create the report in a different environment pre-CU3, then export it and import it into my other environments that are post-CU3. I expect this will work just fine, as both my original and the default PSAPurchaseOrder report work fine in CU3 until I try to go in and modify it by refreshing the dataset. I'll post back with results for anyone in a similar situation.
The semi-solution is to rename the troubling parameter then save, add to aot and deploy. Then rename the parameter back to its original name, save, add to aot and deploy.
This works for me
I was able to get a response from Microsoft on this. They have indicated that this is a bug.
1. Go into the AOT, expand the SSRS Node, expand the Reports node and locate the PurchPurchaseOrder report
2. Right click on the report and select Delete. This will remove all of the customizations to the report
3. Once the delete is completed, right click on the report again and select Deploy element. You should now be at the point where you would receive the original PSAPwpTxt error
4. Open Visual Studio and edit the PurchPurchaseOrder report to add the PSAPwpTxt and PSAVendorTxt parameters per my first recommendation. DO NOT refresh the data sources at this point.
5. Save the changes to the report and deploy it to the AOT
6. Open the AOT, expand the SSRS Node, expand the Reports node and locate the PurchPurchaseOrder report
7. Right Click and select Deploy Element
8. Once the deploy is finished, you should be able to print the Purchase Order confirmation.
9. Open Visual Studio and select the PurchPurcaseOrder report
10. Refresh the PurchPurchaseOrderLine data set.
11. Expand the Parameters node. You should now see the four new parameters (Location, MiscText, PrintHeader, ProdType).
12. Right click and delete these four new parameters
13. Save the modifications and deploy the report to the AOT. ( you will get build errors but that is ok)
14. Open the AOT, expand the SSRS Node, expand the Reports node and locate the PurchPurchaseOrder report
15. Right Click and select Deploy Element
I've struggled with this problem for the past day.
First I had to save my report format changes and delete the report.
- Open the design, right-click on the filename in the tab heading and select Open Containing folder.
- Copy the RDLC file to another location.
- Close VS.
- In AX, delete the modifications on the SSRS report.
- Redeploy the standard report.
Then I edited the standard report and reapplied my format changes.
- Reopen the VS project and refresh the two datasources.
- Set the four new parameters to Nullable=true.
- Open the design and right-click on the filename in the tab heading and select Open Containing folder.
- Copy the saved RDLC over the current RDLC file.
- Click on the design in VS and allow VS to "reload" the changed file.
- Save and rebuild.
Now I redeployed the changed report.
- In AX, first right-click on the report and choose Restore to ensure the current coy is reread.
- Right-click on the report and choose "Deploy Element"
Even after this my report still gave the "Parameter 'X" is missing a value". As a work-around, I ended up directly editing the report properties in Report Manager, setting the four properties to Hidden and Null. Then the report worked.
Check if the table PrintMgmtReportFormat has an entry for PSAPurchaseOrder.Report
There should not be an entry for PurchPurchaseOrder.report.
This solved the issue for me.
You're right, Andy. My solution worked for me, logged onto the server. But when I went in the ordinary way - I had to do what you said. Thanks!
Other Microsoft Sites
I'm a Customer
I'm a Partner
Use the official Twitter tags:
#MSDYNCOMM | #CONV13