Display Customer Activity Notes on Sales Order After CustomerID entered - acumatica

I have a request from a pop up of the Customers Activity Notes after the Customer ID has been entered on a sales order. Currently they have set up specific instructions for entering an order for customer (could be different for each customer). We have entered them under the customers Activity Notes with a specific ID in the subject field. The notes will be in the body of the activity.
Rather then copy this info to the Sales Order Activity Notes, they would just like to display the Activity Notes from the Customers Activity Notes.
Has anyone done something like this or have any though as to how this could be accomplished.

You could proceed one of two ways:
First way is you could create a button in which it would fetch the associated customer's notes and display them.
The second way is that you could override the PXSelecting action for the page and make sure the Customer ID selector has commit changes set to true.
Either way you go, you will need to fetch the notes using the customer's NoteID field from the Note table. One method would be:
BAccount cust = PXSelect<BAccount, Where<BAccount.bAccountID, Equal<Current<SOOrder.customerID>>>>.Select(Base);
Note custNote = PXSelect<Note, Where<Note.noteID, Equal<Required<BAccount.noteID>>>>.Select(Base, cust.NoteID);
This should get you the result you desire. You can then display it however you choose.
NOTE: Please let me know if there are any syntax errors and I will correct them ASAP.

Related

Link Employee to User in API

Using version 21.210. I am able to create a user via the Contract-Based REST api and I am able to create an employee. How can I link the employee to the user? So, I want to do the equivalent of selecting a "Linked Entity" on the Users screen (SM201010).
I see a ContactID field in the Employee/ContactInfo entity but, it doesn't appear to be mapped to anything. Also, it doesn't show on the entity when I query any employee using a GET and $Expand. I'm thinking that I could use the ContactID from the Employee to plug into the "LinkedEntity" field on the User.
Any thoughts would be great.
TIA!
It is linked by the UserID field on the Contact record(that is linked to the Employee via the Employee.DefContactID field). Users.ContactID is a virtual field but in the RowSelecting event it is populated by selecting a contact record where Contact.UserID is equal to Users.PKID.
So you would need to set the UserID field on the employee's Contact record to the user's PKID value. In addition there is also Employee.UserID that you would want to set equal to the Users.PKID value. The virtual field is populated using that Contact.UserID value but in the RowUpdating handler Acumatica is updating both the Contact and Employee records when Users.ContactID is changed.

In Acumatica, using #me inside Relations Section of Generic Inquiry

We want to have a sales order dashboard where we only show orders for certain sales people based on the logged in user. For example, we have sales people BB and CR who share an assistant TP. BB can see his orders on the dashboard. CR can see his orders on the dashboard. TP can see orders for both of them on his dashboard. We also have people outside of sales who need to see all orders. We want to do all of this without having to create a bunch of custom dashboards. We wanted to maintain 2 dashboards - one filtered one for sales people and one unfiltered one for everyone else.
We have gotten close to solution by using a generic inquiry. We created custom fields on the salesperson that point back to a logged in user (UserID1 and UserID2). Multiple custom fields were used because a single sales person could be visible to 2 people. We then joined SOOrder to SalesPerson inside our GI. We then wanted to join the Users table on (SalesPerson.UserID1 = Users.PKID AND SalesPerson.UserID1 = #me) OR (SalesPerson.UserID2 = Users.PKID AND SalesPerson.UserID2 = #me). That would allow us to create a filter where Users.PKID is not null to limit the view for sales people and then not use any filter on the non-sales dashboard.
The problem is that #me is not available on the Relations section. It is only available on the conditions section. We tried to just have the join of SalesPerson.UserID1 = Users.PKID or SalesPerson.UserID2 = Users.PKID and then creating the condition for the #me portion. The issue there is that it only shows records with a match. That won't work for non-sales people.
Is there some way to include #me or an equivalent on the relations tab? Any better way to accomplish this?
Built-in variables like '#me' aren't well documented which raises questions about support of this feature.
Try this instead:
In generic inquiry TABLES tab, add table 'PX.Data.AccessInfo'.
In PARAMETERS tab, add a new parameter (ex: 'P1') and set the Schema Field value to 'Accessinfo.UserID' (use 'Accessinfo' or the alias for that table declared in TABLES tab).
In the RELATIONS tab in the join condition Child Field you can reference the '[P1]' variable.
Accessinfo DAC contains current record of the logged in user and reflects the information you see when you click your profile in the top right of Acumatica pages. If the solution doesn't work right away you can debug it with the Request Profiler page to look up the generated SQL query for the GI.

lotusscript put code in view of column mail database

It's possible to get in view of column mail database, (of course if is) #Author department (or somthig other information from adress book/ldap)? Formula? Domnio 8.53
No it is unfortunately NOT possible: #DbColumn and #Dblookup do not work in column formulas. If you need to display that information, you need to write it into the document (and probably check the validity of that i formation on a regular basis and refresh if necessary).
A view always shows documents. And these documents have items that store the information. You can only show information in the view that is stored in exactly this document that is shown. You can in NO WAY display data from any other document in the same row of the view not even from another document of the same type.
Your maifile e.g. contains documents of type "memo". They have information about the mail (from whom, sent to who, when, subject, body, etc...).
Your mailfile can also containt documents of type "contact". They have information about contact persons (first name, last name, phone number, department, etc...)
There is NO WAY to show information from a contact in a row of a view that shows a memo document. NO WAY.

Netsuite System Notes for Contract Items

In NetSuite, I am trying to create a Saved Search report that shows field changes to individual contract line items. I will be using this report to reconstruct historical data, including pricing and quantities.
I have a Transaction Saved Search that shows me each contract and every contract line item. I have tried to include System Notes fields to pull in the field history, but it is only able to show me System Notes for the overall contract record (not the individual line items).
I also tried creating a System Notes Saved Search, which pulled the details I was looking for, but does not show me the Internal ID of the record (it shows me the "Record", which appears as a string - ex: "Contract #12345"). It also does not show me the ID of the contract line item, so even if I am able to join based on the Contract ID, I don't know which line items were affected.
If I navigate to the contract in NetSuite and look at the Items list, I am able to click the "History" button to see a list of changes - this is the information I am trying to pull. Is there any way to do this through a Saved Search?
Transaction item sublist history, is not yet exposed on the saved search/suitescript.
There might be an enhancement request for this use case.

Filtering based off #me

I have created a custom screen that records a "SalesPerson" ID that links back to the Salespersons records.
One of the requirements is to create an inquiry screen (not generic inquiry) that has a filter for the current sales person (based on logged in user). The Filters should be "All Records" / "My Items" with the second being the default displayed (based on the recorded "Sales Person)
For this, The PXSelect statement links {customtable} -> {employee} (where salesperson record = employee.salesperson
I even extended that to link employee.userId -> users.pKid.
The actual select statement is below:
public PXSelectJoin<CWAItem,
LeftJoin<EPEmployee,On<CWAItem.salesPersonID,Equal<EPEmployee.salesPersonID>>,
LeftJoin<Users, On<Users.pKID,Equal<EPEmployee.userID>>>>> MobileOrders;
Both of these correctly display the user name in the grid however when i create a filter where EPEmployee__UserID = #me or Users.UserName = #me no records are returned.
Scanning through the system this appears to be used on the "WZ201500" screen that has a simular filter. The difference that I see is this is referencing "EPEmployee_UserId" based on the table definition.
Is there a limitation to using child DAC's and the #me or is there a different way to handle the joins so the #me works correctly?
Any assistance would be appreciated.
Having not used #me I am not sure what this refers to, however we did something similar limiting records based on the current user ID using access info like such:
Where<EPEmployee.userID, Equal<Current<AccessInfo.userID>>
Hope that helps
Just use the Table AccessInfo then Default Value of your Filter Equals to AccessInfo.UserID to any of the Table Field you need like CreatedByID or ModifiedByID

Resources