Jump to content

Overview

About This Club

Join our Sage Intacct Developer Club, where our mission is to help developers succeed by providing quick, reliable community driven support, providing a friendly community, and encouraging the sharing of knowledge. Whether you're a seasoned developer or just starting out, join us to share solutions, experience a supportive community spirit, and make things a little bit easier together!
  1. What's new in this club
  2. Hi, I'm putting together a proof of concept and investigating duplicate some of the data locally. I have implemented a trigger on the SODOCUMENT object to duplicate data, which POSTs our useful data into our onsite database. I want to also do this for the SalesOrderLines (as we internally call them or - SODOCUMENTENTRY) However there is not a regular trigger to do this? Would SmartEvents be better suited for this? Thank you Miles
  3. Hi, I'm putting together a proof of concept and investigating duplicate some of the data locally. I have implemented a trigger on the SODOCUMENT object to duplicate data, which POSTs our useful data into our onsite database. I want to also do this for the SalesOrderLines (as we internally call them or - SODOCUMENTENTRY) However there is not a regular trigger to do this? Would SmartEvents be better suited for this? Thank you Miles
  4. Tech Talk: Customization and Platform Services User enrichment workshop Date: Wednesday, September 25, 2024 Time: 11:00 a.m.- 12:00 a.m. CST Description: Whether you are a Developer or Finance Manager, join us to understand the primary differences between Customization Services and Platform Services to see which option can best help your business. We will discuss ways to customize Sage Intacct using Platform Services. We will feature: Smart Rules and Smart Events Printed Document Temples Custom Fields and more! Register: https://events.teams.microsoft.com/event/a60c3c8b-67d7-4340-8480-46f0cb374c33@3e32dd7c-41f6-492d-a1a3-c58eb02cf4f8
  5. If you put in a new name in the second field it creates a new tab of that name for you against that record.
  6. I did try to add an example of the page script, but Cloudflare blocked me, maybe if I do a screengrab:
  7. Hey, I think this post breaks down into two questions which have a related theme. Firstly, when adding a new field, under deployment options, we are presented with 2 x places to put in info. I can see the first box (section where field appears) makes a new section on a page - all well and good! What does the second box do? I assume it's for something but I can't seem to get it to do anything... (with the yellow question mark on the screenshot) Secondly, since Sage doesn't allow for much customisation for hiding irrelevant fields and sections, we use a script component to do this for us. I know Sage say it's best practice to not do this but needs must. I can hide stuff fine, but sometimes in a section, there can be say 3 x columns, and it ends up looking a bit funky (e.g. one column can be full, the second can be blank, the third can have 2 fields). Is there any simply script (or other way) to tweak the location of fields. Thanks, Daniel
  8. We are using the API to create a payment request. All is working, except that the "Submitter" is set to the Web Service user regardless of what is passed into the paymentcontact field. How can we make it so that the paymentcontact is used as the Submitter/Notification contact name? xml used whcih works, except for the paymentcontact not saving. <content> <function controlid="testControlId"> <create_paymentrequest> <bankaccountid>APF BAML</bankaccountid> <vendorid>BLOOM</vendorid> <memo>send pmt request jfs</memo> <paymentmethod>Printed Check</paymentmethod> <grouppayments>true</grouppayments> <paymentdate> <year>2024</year> <month>09</month> <day>05</day> </paymentdate> <paymentoption>vendorpref</paymentoption> <paymentrequestitems> <paymentrequestitem> <key>515</key> <paymentamount>50.00</paymentamount> </paymentrequestitem> </paymentrequestitems> <documentnumber>989898</documentnumber> <paymentdescription>pmtdescmemo</paymentdescription> <paymentcontact>wkhan</paymentcontact> </create_paymentrequest> </function> </content>
  9. I work for Product within a software company looking to integrate to Intacct as we have some of our larger, more strategic customers integrating with Intacct. I've searched and found various people asking about gaining access to sandboxes and no clear answer as to how we get this. Historically our company were Sage accredited/certified developing towards Sage 50 and 200 however I am not sure whether this is still the case, nobody appears to have any details for this. I have seen answers that we should sign in to the Sage Community to raise a ticket however this asks for a customer number etc which we do not have and we can't sign up without one. I try to use a contact us page however there appear to be no simple answers to be able to call/email or fill out a form. Is there a way that we can get a sandbox environment or do we need to use a customer training system or similar? Any help will be greatly appreciated.
  10. Do you mean using the AJAX SDK, as in this > https://developer.intacct.com/platform-services/ajax-sdk-javascript/ If you do, then I don't think you can - there isn't a parameter you can pass to the API_Session to set the transaction attribute. Also, I don't see a way to construct a call containing multiple function calls, which would be needed for the transaction to work. I think you would need to build your own XMLHttpRequest request, rather than using the SDK. Happy to be proved wrong by somebody else though 🙂
  11. Would <operation transaction="true"> work on a CSV import using AJAX within Intacct? I am trying to structure the payload to represent all the <create_sotransaction> within one <operation>. Given that the payload only shows the results, is there anyway to manipulate it?
  12. Yes, have a look at the SDK documentation, here: https://intacct.github.io/intacct-sdk-php/class_intacct_1_1_functions_1_1_common_1_1_read_by_query.html
  13. I believe this is due to the details being written prior to the header in some instances. If you go to the transaction definition for the document, under the general tab there is an option 'Preserve sequence numbers' - if this is ticked, then it should resolve the problem you are seeing. Please have a read in the help file first for this option. Also, if you have entity specific configuration, you may need to set that tick box against each entity. Alternately, you could try adding a condition to your trigger to only fire when the document id does not contain 'Temp'.
  14. I appreciate the support... all working now. I had to get the case correct otherwise nothing returns... I'm amending my solution for the next person 🙂 $where1 = new EqualToString(); $where1->setField('DOCNO'); $where1->setValue($doc_id); $query1 = new ReadByQuery(); $query1->setObjectName("SODOCUMENT"); $query1->setDocParId("Sales order"); $query1->setQuery($where1); I'm guessing this ties back to object inheritance?
  15. @Louis Sterio2 Would this work on a CSV import using AJAX within Intacct? I am trying to structure the payload to represent all the <create_sotransaction> within one <operation>. I am getting errors so just making sure that it is doable.
  16. I know this is an old topic but I'm implementing something similar but failing. I have a Platform document to update an SODocument as its created. The corresponding trigger fires After Create. I've confirmed the trigger is firing but each time it's failing with an error like the following: The Platform Document content is: This was after after I tried to reconstruct what the DOCID would be. Previously, I had <update_sotransaction key="{!SODOCUMENT.DOCID!}"> but received the same error. It's as though the trigger is firing at a time when the Transaction hasn't been committed yet and DOCID and DOCNO haven't been finalized. Is that a possible? Is there a way to ensure the trigger fires after that? Feel free to make any other suggestions you have about the above code.
  17. @Jordan Hagan For information on rolling back successful transactions when a transaction fails within the same payload, please refer to the following documentation: https://developer.intacct.com/web-services/requests/#transaction-attribute-optional
  18. Posting this on behalf of Lee. ----------------------- Ok, I've got the field values in the way I want. When I hit the custom button I get this in the console: VM4162 jquery-3.5.1.min.js:2 Refused to connect to '*******************************************' because it violates the following Content Security Policy directive: "connect-src 'self' *.intacct.comhttps://*.grammarly.comhttps://*.grammarly.iowss://*.grammarly.comhttps://app.pendo.iohttps://data.pendo.iohttps://pendo-static-5671022460534784.storage.googleapis.com". In the controller of my API, I have these set: [HttpPost, HttpOptions] [EnableCors("CorsPolicy")] [Consumes(MediaTypeNames.Application.Json)] file:///C:/Users/Lsterio/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif When configuring the request pipeline I have this in the startup.cs: app.UseCustomHeaders((opt) => { opt.HeadersToAdd.Add("Access-Control-Allow-Origin", "*.intacct.com"); file:///C:/Users/Lsterio/AppData/Local/Temp/msohtmlclip1/01/clip_image001.gif On other page scripts that call other endpoints on this API, this seems to be ok. However, for this page script it is refusing to work. The script now reads: <script> jq(document).ready(function() { var html = '<button id="checkOverspend" name="checkOverspend" class="btn btn-primary">Check Overspend</button>'; if (!jq('#_obj__OVERSPEND_PASSED').is(":checked")) { jq('.btn-toolbar').prepend(html); } jq("#checkOverspend").click(function () { alert('Checking overspend'); checkOverspend(); location.reload(true); }); }); function checkOverspend() { console.log('Checking overspend (method)'); var settings = { "url": "*** my endpoint redacted ***", "method": "POST", "timeout": 0, "headers": { "Content-Type": "application/json", "Access-Control-Allow-Origin": "*.intacct.com" }, "data": { sessionid: "{!#CURR_SESSION!}", endpoint: "{!API_ENDPOINT!}", useremail: "{!CURRENTUSER.email!}", licencekey: "{!CURRENTCOMPANY.LICENCE_KEY!}", entityid: "{!CURRENTENTITY#id!}", podocrecordno: "{!PODOCUMENT.RECORDNO!}", podocparid: "{!PODOCUMENT.DOCID#text!}" } }; jq.ajax(settings).done(function (response) { console.log(response); }); } //# sourceURL=addOverspendButton.js </script> Any thoughts?
  19. Thanks Louis! Is there any way to include Smart Events in the application as well?
  20. I tried to do that, but I think I started a recursive loop. The API called caused the trigger to fire and since the trigger is on the APBILLITEM which is what the API is updating, it caused the API to trigger again. Here the API call: <update> <APBILL> <RECORDNO>{!APBILLITEM.RECORDKEY!}</RECORDNO> <APBILLITEMS> <APBILLITEM> <RECORDNO>{!APBILLITEM.RECORDNO!}</RECORDNO> <AMOUNT>{!APBILLITEM.TRX_AMOUNT#value!}</AMOUNT> <ACCOUNTNO>{!APBILLITEM.ACCOUNTNO!}</ACCOUNTNO> <LOCATIONID>{!APBILLITEM.LOCATIONID!}</LOCATIONID> <VENDORID>{!APBILLITEM.VENDORID!}</VENDORID> <PROJECTID>{!APBILLITEM.PROJECTID!}</PROJECTID> <GLDIMRestriction>10002</GLDIMRestriction> </APBILLITEM> </APBILLITEMS> </APBILL> </update> What I'm attempting now is a "Update Field Value" trigger. Here is a screenshot:
  21. Alby, This is currently not possible at the moment. There are ongoing discussions on adding the client credential grant. I will update everyone once something is scheduled.
  22. We are using API Ajax for Custom Imports. We are trying to script roll back if partial error occurs. Right now if one invoice is clean it processes then errors on next invoice and stops the API. We need to revert the Invoice that went through so troubleshooting/updating import file is not needed.
  23.  
×
×
  • Create New...