Vendor Invoices - Charges Code & Vendor Ledger Dimension - axapta

I have a charge code called FREIGHT set up with the following configurations. Under Credit, I've specified a ledger account of 4800.
I now create a Purchase Order, confirm and go through the whole process, and then try to invoice / post it.
I'm presented the following error:
"The combination 4800- is not valid for the account structure MYACCOUNTSTRUCTURE"
So it's been identified that AX is attempting to use 4800 from the aforementioned charges code field MarkupTable.VendorLedgerDimension.
In the code, it crashes in the PurchFormLetter.run() method, and if I did further it goes into the SysOperationController\pack super(); class before it crashes.
Now, if I were to change my account from 4800 to for example 2100, then the invoice goes through fine, which is good.
My question, and what I need is to find out what class / where in the code is this happening during the invoice post process that AX is trying to use this MarkupTable.VendorLedgerDimension field. I need to access that part of the process and modify that value (obviously 4800 is just the display value) to be something else.
If anyone needs more information for background, I need to keep the account for FREIGHT at 4800, while setting the actual financial dimension to the financial dimension on the line item. I've been debugging and looking all over the place for where this process occurs, but have had no luck so far.
If anyone can point me in the right direction, it would be very greatly appreciated.
Thank you.

Check what dimensions are mandatory on this account. Then set financial dimension on invoce lines.

Related

Using LinkedIn API to retrieve advertising reports

I'm working on a simple app to programmatically retrieve ads performance within Linkedin. I have general API experience but this is the first time i get my feet wet with the Linkedin API.
One example from Linkedin API documentation suggest something that would get me started:
GET https://api.linkedin.com/v2/adAnalyticsV2?q=analytics&dateRange.start.month=1&dateRange.start.day=1&dateRange.start.year=2016&timeGranularity=MONTHLY&pivot=CREATIVE&campaigns=urn:li:sponsoredCampaign:112466001
I am encountering two problems:
First this example implies that you already know the campaign ID. However I am unable to find a way to retrieve a list of campaign ID's for a given account.
Second, if I manually pull a campaign ID, I receive an error: "{"serviceErrorCode":2,"message":"Too many fields requested. Maximum possible fields to request: 20","status":400}". Pretty clear error.
A little research tells me that by adding the parameter "&fields=" I will be able to limit my query to less than 20 field (I really need only a dozen anyway) but I can't find and documentation regarding the names of the fields available.
Any help or pointer will be appreciated.
please refer the link below scroll down where you ill see the field names mentioned as metrics , these are the fields.
https://learn.microsoft.com/en-us/linkedin/marketing/integrations/ads-reporting/ads-reporting?tabs=http#analytics-finder

How Do I Know What AOT Class I Need to Change to Modify the Behavior of Canceling PO Lines

Despite knowing AX enough to get around, it's still thoroughly confusing to me. I have a background in Visual Studio C#, and I could always figure out where a particular segment of code was performing the unexpected behavior, but after a year and a half of AX 2012, it's still a mystery.
There's a legacy system that is not getting POs sent from AX whenever a PO Line is cancelled; my objective is to change AX to guarantee that cancelled lines are sent back to this legacy system.
I need to modify the behavior after PO lines are canceled. I know that users cancel the line by going to Procurement and Sourcing => Common -> Purchase orders => All purchase orders. They Request Change on a PO, then under the Purchase Order Lines section, they navigate to Update Line => Deliver Remainder; doing a Personalize on this form shows that the form is called PurchUpdateRemain, a Foundation form. I hit the Cancel Line button, then confirm the change.
I know that a workflow is triggered on this, and I've completed the whole process of approving the change, but no AIF service is called according to the trace I ran on it, so I'm confused as to what AIF service should handle it.
My question is: How do I find where a file should be sent out in AX? AX does not seem to give any indication as to what logic should be called after a line is cancelled. If I could just see the whole flow of the code like I could in Visual Studio, I could determine where I need to make my change in AX, but I've not yet figured out how I can possibly do that. Any tips? I'm at my wits end here.
A lot of it is just knowledge gained from experience. Pretty much figuring out where to look. Putting a breakpoint in and tracing the code and stepping into methods is often the best way.
Here's a stack trace that shows where the status is changing so you can figure out where to put your code. I cut off line #'s because my code is customized and they wouldn't line up.
Hopefully this won't be too late.
Check the class PurchCancel, in the run method you can see the process of how a purchase order is being cancelled.

AuthorizationException when calling Transaction.SubmitForPartialSettlement

When trying to submit a Transaction for a Partial Settlement, I'm getting the following exception + message:
Exception of type 'Braintree.Exceptions.AuthorizationException' was thrown.
There is nothing else to explain where I've gone wrong.
This is how I'm making the API call:
BraintreeHandler.Gateway.Transaction.SubmitForPartialSettlement(“transaction_id”, amount);
I know the Transaction Id is correct, because I'm loading the Transaction information beforehand. I'm also always using an amount less than the transaction total.
BraintreeHandler.Gateway.Transaction.SubmitForSettlement(“transaction_id”, amount);
The above works fine with an amount, but I don't want to submit the Transaction for settlement as I'd like to retain the ability to partially settle.
For example: If I have a Transaction Amount of £50 with a status of "Authorized", I'd like to be able to settle for £20, £20 and £10 on three separate occasions. With the SubmitForSettlement() method I can only settle for the initial £20 before the status is updated to "Submitted for Settlement". After this I can't perform any more partial settlements.
Information pertaining to the SubmitForPartialSettlement() method is conspicuously missing from the Transaction docs on the Braintree developer site. Has the method been deprecated? If not, how can I make use of it?
Full disclosure: I work at Braintree. If you have any further questions, feel free to contact support.
SubmitForPartialSettlement is a feature currently being tested and is not available to all merchants at this time. If you would like to request multiple partial settlements to be enabled for your account, please reach out to Braintree support or your account manager.
For the time being, you have the correct solution in SubmitForSettlement, passing in an amount less than or equal to the transaction amount. You will only be able to settle once.

Google Analytics Ecommerce / Difference between 'ec:addItem', 'ec:addTransaction' and 'ec:send'

I would look for some feedback on tracking user activity on an commerce website using th google analytics commerce capabilities.
I can't fully understand those 3 parts :
Adding an item (ecommerce:addItem) : obviously when some user add a thing to the cart
Adding a Transaction (ecommerce:addTransaction) : that's where I'm very confused
Sending the data (ecommerce:send) : that's obvious
Can those 3 event append at a different moment ? in what manner ?
What would be a real-world use case that would make you use execute ecommerce:addTransaction and ecommerce:send at a different moment ?
This thing makes me wonder a lot, and I'd like to have some experienced feedback on this as you tend to easily break your stats if something is not done week enough
Thanks in advance
EDIT
So the main purpose right here is to get stats for the pending orders (you add stuff to your cart), and the complete orders (you paid for the things you added).
Right now I only send it all when the order is complete, and things are working pretty good in analytics, but I just don't know anything about the ones that did not complete.
This question was a lack of knowledge.
Simple ecommerce plugin has nothing to do with the enhanced ecommerce plugin
You won't track that much with the first one, except the checkouts. A plain, one order at a time, revenue value.
If you want a deep insight on your users behaviors (when i say deep, I mean it), You have to go for the second one.
We might be able to debate over the unusefullness of the first one; and the fact that its existence in itself compared to the second is completely misleading, as when you first get in, as usual with google, you get flooded by an endless documentation
ecommerce:addItem does not add items to a cart; it adds items to a transaction (with "conventional" ecommcerce tracking there is no cart tracking, you'd have to use enhanced ecommerce tracking. Actually your title refers to enhanced ("ec:") and your question to conventional ecommerce ("ecommerce:") tracking).
So ecommerce:addTransaction starts a transaction; here goes the stuff that affects the transaction as a whole, like transaction id, tax on the total purchase or shipping costs.
Now that you have started the transaction you can add items to it that are associated via the transaction id.
Finally the ecommerce:send command tells Universal Analytics that the transaction should be processed on the server. "send" is actuall a misnomer; addItem and addTransaction do already send data to the server (they each create an request to the tracking server and thus count towards your hit quota).
The reason for this is, as far as I can tell, that the information is transmitted via url parameters (you call the Google Analytics endpoint which returns an transparent pixel). The maximum length for an url request is limited (actual limits depend on browser and browser version).
So the transaction is broken up into multiple parts not because you want to execute the commands at different moments but so it can be transmitted via Url parameters without being truncated. The send command merely tells that you are now finished adding new parts to the transaction and the data can now be processed.

Database relations query

I have two database tables
this is a sample database of a Ticketing system.
Figure 1: Sample table of air ticket.
Figure 2: Sample table of tax.
Requirement:
When ticket is made from the interface, it has multiple taxes of different names every time.
How can I store this information i.e. 'n' number of taxes for each ticket with different names every time.
I have tried to make many to many relationship but the problem is:
For each ticket if the tax is not setup, then need to add the tax first.
Any optimal solution for this?
"the problem is: For each ticket if the tax is not setup, then need to
add the tax first."
This is not a real-life problem. In real life governments declare taxes well in advance of collecting them, This gives organizations sufficient time to amend their systems which need to handle taxes. Tax is never a surprise.
"But this is very tiring solution for the end user.... to make bunch
of tax setup for each ticket"
This sort of thing is reference data, and is the duty of the system developer (hint: that's you) to populate the reference data tables. Or at least provide a screen where the user can create or amend various taxes. This is a different function from defining a ticket type.
The Ticket Creation screen should have a drop-down list (or similar widget) displaying all the existing taxes, which allows the user to pick the relevant one(s). If you reall think it's necessary you can include a link to the Create Tax screen, but that really is a very confusing workflow.
If the commentators are correct, and this is a ticket purchasing function, then your design is seriously wrong. Sales taxes must be included automatically to the cost of the purcahse as part of the transaction. Otherwise nobody would pay any tax.

Resources