At my company we’ve never had cause to restrict wiki content at all. In the end it is all just information used to understand the system and clarify specific fields and such. As an aside, the typo in this section actually made me laugh: “Wiki pages don’t contain any sensible information”. I’ve had coworkers tell me how terse the wiki can be at times. I know this was meant to be “sensitive” but please do not encourage them!
@PorchlightZach Thanks for your detailed response. Just to make sure there is nothing related to the application side, and as the last resort I would suggest deploy a new instance against the same Database and login using the new URL and check if that makes the difference. This way we can make sure nothing is related to the Application files. I’ll give this a try, but it won’t be for a while. When I am ready to do our upgrade on the production instance, I intend to check this part of the Customization Project Editor before I upload the updated projects and publish them.Our live 19R1 instance has the add button on this form. If it disappears after the upgrade is complete but before I publish customizations, I’ll at least know whether it was related to the upgrade. I’ll post an update when I know more. Thanks for your help again.
@hkabiri Thanks for these suggestions. Initially the CustObject node under Files had access rights of Inherit for all of the items listed. While my normal user and the admin user had Delete rights to the Customization Project Browser, I explicitly set Delete on everything under CustObject. I haven’t had any issues publishing customizations but to be thorough I made sure that the IIS configuration for this instance had the proper settings to access the Acumatica folder. I did this using my local windows login. I also made sure to explicitly set user settings on the Acumatica folder for that same windows user (my account) I’m still not seeing the add button though. Very perplexing.
Just to follow up, I got this working like I needed to. Interestingly enough I did not have to use the Decrypt method in the FieldSelecting event handler. I reused some code from CCProcessingHelper.cs to load the details for a payment method with the intention of starting off with whatever it returned. After I got that working, I’d work on unmasking the value, but it turns out that wasn’t necessary. When customer payment methods are queried with the v20 endpoint, my custom field contains the value from the payment method detail in plain text. I wish I had looked into this option even with the v18 endpoint. As the payment detail record is a BQL delegate it cannot be returned with customer payment methods. This approach saves an additional API query to get the Payment Profile ID for each customer payment method. For customers with many credit cards this can save up to 10 additional queries.It is probably obvious that the API cannot query the custom field directly until a value is
In specifics to the unmasking question the system encrypts the values by default, the IsEncrypted field just determines whether or not it decrypts them when displaying them in the UI(and the decrypting seems to be handled by per Graph event handlers rather than DAC attributes). The CustomerPaymentMethodDetail.Value DAC field has an attribute called PXRSACryptStringWithMaskAttribute that does the encrypting, so you could probably(haven’t tested) overwrite that to prevent the encryption. You could also probably(haven't tested) just customize the API and have it decrypt the value using the PXRSACryptStringWithMaskAttribute.SetDecrypted method before returning it. The third option would be to create your own Attribute and model it off the dynamic attributes already on the DAC field and dynamically decrypt the field based on the IsEncrypted value(probably in the FieldSelecting Event). Thank you for these suggestions. I didn’t think about looking for the SetDecrypted method in the bas
Hopefully someone can weigh in on the unmasking issue. My plan B here is to track Payment Profile IDs from web orders in a regular text user field on the Customer Payment Method. I am hoping I can create a business event and import scenario to back fill that field. IIRC generic inquiry results will also mask the CCPID value so my plan B is only going to work if it is possible to copy the value of one form field to another field in an import scenario. Well, looks like I just wasted about an hour on Plan B. When I try to have an import scenario copy the internal field [Detail.Value] to my custom field, it copies nothing. As you can see in the highlighted row above, the value should be copied. However when the import scenario is triggered by my business event, the value copied is always blank. On a previous version I attempted to use =Concat([Detail.DetailID], ‘=’, [Detail.Value]) in the custom field assignment. When my business event would run, only the equal sign would show up i
Hi @PorchlightZach NeedValidation =True -> if click the validate Card payment action, automatically check the New card check box as checked and Enabled the Authorize button if the transaction details is wrong @jinin Thank you for the response, this helps. Do you know if the new card checkbox behavior only occurs if the customer has no existing payment methods on file? The payment behaved like you suggested with regard to validating the card, however the sales order and payment both defaulted to an existing Card Account Number and the new card checkbox was not visible. I tested the API behavior out with Postman in a development environment with my own account. My account already has other payment methods on file that use the same payment method ID.I plan on doing some additional testing with this. I still have to update my code so that payment methods are created prior to submitting an SO payment for the ecommerce transaction. This is where the unmasked payment profile come
Already have an account? Login
Enter your username or e-mail address. We'll send you an e-mail with instructions to reset your password.
Sorry, we're still checking this file's contents to make sure it's safe to download. Please try again in a few minutes.
Sorry, our virus scanner detected that this file isn't safe to download.