Most of the clients has requirement to export their supplier payments which are created in Sage X3 so that they can upload the exported payment information on their bank site for making the bulk payments to their suppliers. So to achieve this we have developed a utility which will helps users to export the required payment information based on the parameters entered.
Please refer below screen shot which will give you better visualization. Here user needs to select an appropriate Date range, Site and company name on the screen, based on these parameters, utility will display all the payments made for that particular period of time. These payments then can be exported in CSV file format using print button given and can be uploaded on the bank site for actual payments. Once the upload done, bank process the payments to the suppliers based on the information there in the CSV file.
Please refer below steps that needs to be follow:-
Step 1: Login to Sage X3 and navigate to home page–>Bank Integration–>Payment Export Step 2: On the header part of the screen, user needs to select date range and other parameters Step 3: Once user clicks on search button, all the payment with required information like payment number, payment amount, Bank name, Bank Add, Amount, Vendor etc. will get displayed on the detail grid. Step 4: User will have provision to select the payments from the grid by just doing tick on check box against respective Payment Number for which they wants to do the payment. Step 5: At the last user needs to click on ‘Print’ button and to generate a CSV file which user can directly upload on the bank site for payment process Step 6: Once the file has been uploaded, amount against particular payment no would be debited from company’s Account and credited to Vendor’s Account.
Hence, with the help of this Payment export utility user saves their time for doing the payment to their suppliers.
In Sage X3, we know that users can create the PO order, PO receipt, PO return and PO invoice transactions against vendors/suppliers using purchase module. So in PO module, whenever user created the receipt from particular purchase order or returning some qty using purchase return screen, then Qty on hand or stock Qty got affected.
For one of our client, we did customization where user wants to know the pending PO quantity on the Receipt entry screen itself so that user must be aware of the status of that particular PO whether it’s partially received or completely received. Also whenever user creates the return entry against that particular receipt then Pending quantity on that particular PO should also get changed accordingly. So to achieve this we have added an additional column ‘Pending Quantity’ on PO Receipt/GRN detail grid which got refreshed based on the quantity received and quantity return with reference to that particular PO.
For example, If we have created Purchase Order with ordered Qty=1000 and post that purchase order transaction. (Go to Purchasing–>Orders Section–>Orders).
And then we have created Purchase Receipt entry with Qty=800 and post that purchase receipt transaction. (Purchasing–>Receipts Section–>Receipts) Refer below screenshot:-
After creation of Purchase Receipt entry, out of 1000 quantity, 800 quantity got received so Pending qty get changed to 200 i.e. (1000-800), as shown in the below screenshot:-
When we will create another receipt from same purchase order with remaining qty i.e. 200 then pending qty will get changed to 0.
In the same manner when user creates the Purchase Return entry of the above Receipt, the pending qty value will get changed in receipt detail grid. Let’s take an example, supposed if we raised Purchase Return entry with 50 Qty against the above receipt and posted that purchase return transaction. When user reopen previous receipt then pending qty will be displayed as 250.
This customization is developed so that user can easily identify in the receipt screen that what is the pending qty for particular purchase order after creating purchase receipt and purchase return transactions.
We come across the scenario, where we will use POSTMAN software tool to examine the working of external API. Postman is a simple GUI for sending HTTP requests and viewing responses. REST services are available in sage x3 that returns data in a JSON format. In this blog, we are going to visualize the mapping of fields from postman to x3 Rest web services.
Example: In Postman IDE,
1.HTTP
Request
— Request is the simplest way possible to make http calls.
a.
Request Method: Request method defines the type of request to be made.
There are mainly four request methods, used for creating/updating, retrieving
and deleting data.
POST Request — For Creating Or
Updating data
PUT Request — For
Updating data
GET Request — For
Retrieving/Fetching data
DELETE Request — For Deleting data.
Choose
Post Method, A POST request is a method that is used when we need to
send some additional information inside the body of the request to the server.
b.
Request URL:URL to make the http request. Enter the complete URL on URL
field.
c. Authorization: An authorization token, included with requests, is used to identify the requester. Select the Basic Auth on Type field and enter valid Username and Password.
d.
Request Header: In request headers it contains key-value of the
application.
Content-Type
— A content-type describes the format of object data. Content-type, i.e.,
application/json which is used for the requests and responses
e.
Request Body: Body Field contains
the data, depends on type of request method, to be sent with request, raw form
of data is used for sending request.
{
“name”:”Kalam”,
“job” :”scientist”
}
2.HTTP Response — On click of Send Button, Response will display in JSON Format.
In X3:Create
REST Web services
Navigational Path:
All->Administration->Administration->Rest Web services
Name Field : Enter any user defined field
Base URL : Enter
the domain name of the URL
Example:
Enter only domain name: http://reqres.in
from full path: http://reqres.in/api/users
Content-Type: Choose Json
Authentication: Choose Basic Authentication and Enter credentials ,Username and
password used for authenticate the API
Parameters: PARAM tab in postman is mapped with Parameters fields in X3 as Key value Pair
In X3:Below
Code Snippet to call external API
##Declaration of Variables used in executing
RestWebservice##
Header
is specified in Key-value pair, Header should contain authorization and
content-type details.
Assign
the variable HCOD(1)- Header code of array index 1 to Authorization.
Assign
the variable HVAL(1) -Header variable of array index 1 to username and password
separated with Colon.
Assign
the variable HCOD(2)- Header code of array index 2 to Content-type.
Assign
the variable HVAL(2)- Header variable of array index 2 to application/Json.
Assign
the variable YMTD-Type of Method used to
string value “POST”
Assign
the variable YAPI -REST web service Name to ” CreateID “
Assign
the variable YURI with the remaining part of URL
just
declare Response body variable
and
Assign the YREQBODY variable to input
call
EXEC_REST_WS function from ASYRRESTCLI library with all required parameters and
will return status code as integer value which shows success or failure and
result json format is stored in YRESBODY Variable.
IMPORTANT
NOTE:
If
there is an requirement of sending Username and password directly through code
without passing in REST webservices. Explanation with scenario,
From
Login authentication screen, if it is successful then pass those credentials to
the REST web services through code, In that case Header variable should contain
Header
Code HCOD(1) as “Authorization” and
Header
Val HVAL(1) as ” Basic MTcwZWU5MmEyODOTo= “
String
“Basic” followed by BASE 64 format of Username: Password
Refer
the blog for the ASYRRESTCLI function and its parameters to be passed for the
function
“The narration of function and its parameter used to call an external/outgoing REST web service from ASYRRESTCLI library”
Few List of Status
Code and its description
1.200 -Successful request.
2.201 -Successful request and data
was created.
3.204 -Empty Response.
4.400 -Bad Request.
5.401 -Unauthorized access
6.403 -Forbidden, Access denied.
7.404 -Data not found.
8.405 -Method Not Allowed or
Requested method is not supported.
9.500 -Internal Server Error.
10.503
-Service Unavailable.
Response from API while executing the code above in X3.
This blog helps us to understand the mapping of fields from POSTMAN tool to X3 REST web services and code used to call an external API by using EXEC_REST_ES function by passing credentials in header variables.
About Us
Greytrix – a globally recognized and one of the oldest Sage Gold Development Partner is a one-stop solution provider for Sage ERP and Sage CRM organizational needs. Being acknowledged and rewarded for multi-man years of experience, we bring complete end-to-end assistance for your technical consultations, product customizations, data migration, system integrations, third-party add-on development and implementation competence.
Greytrix is a recognized Sage champion ISV Partner for GUMU Sage X3 – Sage CRM integration also listed on Sage Marketplace; GUMU integration for Sage X3 – Salesforce is a 5-star rated app listed on Salesforce AppExchange and GUMU integration for Dynamics 365 CRM – Sage ERP listed on Microsoft AppSource.
For more information on Sage X3 Integration and Services, please contact us at x3@greytrix.com, We will like to hear from you.
A sales invoice is an accounting document that records a business transaction. Sales invoices provide the business with a record of the services they’ve provided to a customer. When you post an invoice or credit note, the value of each invoice line posts to the nominal account specified for the item. But sometimes we get error while posting sales invoice due to account related.
Sage X3 has a menu termed as accounting codes wherein we need to assign the needed accounts against the different entities e.g. Customer/Supplier/Product etc. If the accounts are not assigned against these entities in the Accounting Setup, in that case, every time the user tries to post a transaction or run the valuation, user may get the “No Account found” error.
Mostly we found this error while posting the invoices whether it can be Sales invoice or Purchase invoice. Sage X3 has a functionality to solve this error. For solving it, kindly follow the below steps.
While posting the Sales invoice you will get below error:
Navigate To>> Sales >> Invoice >> Invoices
Navigate To: All >> Setup >> Financial >> Accounting interface >>Automatic Journals
Select the Entry code i.e. ‘SIHI’ which has mentioned in above Error log file.
Then click on the button which is present on the side of the automatic journal screen.
Please refer the below figure for the same.
After clicking on Lines button, an Automatic Journal (Lines) screen will be open.
Select the line no. i.e. 20 which is mentioned in above Log file. Please refer the below figure for the same.
Now in General tab go to in Accounting Codes section and note down the Index no. of the Product and customer as shown in below figure.
Now go to accounting codes screen and select that account codes which you have defined for the respective product and customer.
For example, In the above transaction we are using “PURSUPPLIE” accounting code for product and “AN_NGRU-NA” accounting code for customer.
(Note: You will get the defined accounting code of that particular product and customer in the Financial tab of product and customer)
As mentioned in accounting codes section, product has 2 index no. and customer has 17 index no., Now go to that particular index no. and enter the account number in legal fields, as shown in below figure.
For Product:
For Customer:
After saving this record, Navigate To >> Sales >> Invoice >> Invoice
Open sales invoice screen and post the sales invoice transaction where you are getting error and you will be able to post the Sales invoice without getting any error, as shown in below figure.
With the help of this blog you can solve the Not-existent account code error and you will be able to post the Sales Invoice.
About Us
Greytrix – a globally recognized and one of the oldest Sage Gold Development Partner is a one-stop solution provider for Sage ERP and Sage CRM organizational needs. Being acknowledged and rewarded for multi-man years of experience, we bring complete end-to-end assistance for your technical consultations, product customizations, data migration, system integrations, third-party add-on development and implementation competence.
Greytrix is a recognized Sage champion ISV Partner for GUMU Sage X3 – Sage CRM integration also listed on Sage Marketplace; GUMU integration for Sage X3 – Salesforce is a 5-star rated app listed on Salesforce AppExchange and GUMU integration for Dynamics 365 CRM – Sage ERP listed on Microsoft AppSource.
For more information on Sage X3 Integration and Services, please contact us at x3@greytrix.com, We will like to hear from you.
In Sage X3, we may come across a situation where we need to prevent printing of a report and we can achieve this using code.
Steps to follow :
To prevent printing of a report we need to create a specific processing script for the report and put the following code in the file.
The principle is that when you set GOK to 0, the report will not be printed. Of course, you have to substitute the dots after ‘If’ with the appropriate condition. For example, suppose that you print a report from the Deliveries function (GESSDH) and you want to print it only if the delivery is validated then you need to put specific conditions to prevent report printing.
This action is called just before the printing of the document by Crystal Report. Warning! This action is mandatory, if an initialization process is specified in the report dictionary. It is not called by the instruction Gosub but by the Call instruction. Two parameters are passed to it, NBPAR (number of parameters) and PARAMETRE (parameters grid).
It is used for other functionalities as well which are explained in below points:
As mentioned, it is used for preventing report printing when GOK variable value is set to 0.
To update the X3 tables (for e.g. print flags etc.)
construct a work table in order that the data may be more easily used by par Crystal Report.
It has also been used as an entry point. It was developed for earlier versions of X3.
Entry point IMPRIME had been created for one of the initial X3 versions. It had to be called just before selecting the printer and made it possible to inhibit the printer entry if variable GPE was different from 0.
The parameters are stored in the PARAMETRE variable with the indices 1 to NBPAR. Each value is a string in the form of “parameter=value” without any other separator.
At this level, the report parameters may be used that are stored in the PARAMETRE (1.NBPAR) grid where NBPAR is the number of parameters A parameter is expressed in this grid in the form : parameter name = parameter value.
There is also DEFIMP entry point which is used to return printer name (destination code) by entering the IMPRIMANTE variable and, if a printer’s name is mandatory.
This entry point is called at the end of the subprogram used to determine a default printer (destination code) even though a printer cannot be found after the standard setup.
This subprogram is called by the AIMDEF action and is usually called in order to initialize the printer before printing a report.
There are also other entry points which are used in the same prospect for the report printing process. (e.g. ALIMETAT) So, this entry points along with other subprogram has various uses for printing reports and other functionalities in X3 as explained in the above blog.
This blog helps to understand how we can prevent report printing pro-grammatically. Beside that it can be used for other usage which are explained in the above points.
About Us
Greytrix – a globally recognized and one of the oldest Sage Gold Development Partner is a one-stop solution provider for Sage ERP and Sage CRM organizational needs. Being acknowledged and rewarded for multi-man years of experience, we bring complete end-to-end assistance for your technical consultations, product customizations, data migration, system integrations, third-party add-on development and implementation competence.
Greytrix is a recognized Sage champion ISV Partner for GUMU Sage X3 – Sage CRM integration also listed on Sage Marketplace; GUMU integration for Sage X3 – Salesforce is a 5-star rated app listed on Salesforce AppExchange and GUMU integration for Dynamics 365 CRM – Sage ERP listed on Microsoft AppSource.
For more information on Sage X3 Integration and Services, please contact us at x3@greytrix.com, We will like to hear from you.
Sometimes, you want to delete the address of a customer or Supplier or BP which is wrong or you want to change the address or you want to delete the address for some other reason. You can follow the below steps to check if the address can be deleted.
Steps:
If you need to delete a Supplier address for example:
Go to Common Data > BP’s > Suppliers
If this address was created just by accident or some other reason and it has not been used anywhere or in any transaction then go to the address line and click on action button on the line level and click on delete and this address will be deleted.
But if it is the Default address then first you need to make another address default address. So, if you already have another address for this Customer/Supplier/BP then make that address the default address. However if there is no other address you need to create a new address and make it the default address, in that case create a new address, enter the necessary address details click on the “Default address” check box to make it the default address and click on save. Now the address you want to delete is not the default address.
Try to delete the address again by clicking on the delete button on the address line level, a message will popup as demonstrated in the below screenshot. This address was used for the Invoicing BP and Pay to BP which explains the message below.
Next go to the Financials tab and change the address in the 2 blocks next to Invoicing BP and Pay-to as shown below and click on Save, to save the changes.
The new addresses will be saved as you can see in the below screenshot.
Now go to Addresses tab, click on line level action button and click on delete the below message will popup, which means that this address is used on the BP record.
Now go to the BP record (Go to Common Data > BPs > BPs) if you have another address here make that one the default address, however if you do not have any other address then create another, save and make it the default address, and then attempt to delete the address there– unfortunately the message below means that this address has been used in transactions and therefore cannot be deleted. The customer addresses cannot be deleted if the address has been used in any transaction.
Hence this address cannot be deleted since it has been already used in transactions, so what you can do here is remove this address as the default address and do not use it in any further transactions.
Unfortunately addresses that have been used in transactions cannot be deleted.
If an address was just created by accident or was created and has not been used anywhere then it can be deleted by first making another address default address then clicking on the line level delete button in BP or Customer, but if the address is used in any transactions then it cannot be deleted.
About Us
Greytrix – a globally recognized and one of the oldest Sage Gold Development Partner is a one-stop solution provider for Sage ERP and Sage CRM organizational needs. Being acknowledged and rewarded for multi-man years of experience, we bring complete end-to-end assistance for your technical consultations, product customizations, data migration, system integrations, third-party add-on development and implementation competence.
Greytrix is a recognized Sage champion ISV Partner for GUMU Sage X3 – Sage CRM integration also listed on Sage Marketplace; GUMU integration for Sage X3 – Salesforce is a 5-star rated app listed on Salesforce AppExchange and GUMU integration for Dynamics 365 CRM – Sage ERP listed on Microsoft AppSource.
For more information on Sage X3 Integration and Services, please contact us at x3@greytrix.com, We will like to hear from you.
In Sage X3, using auto numbering feature we can generate document numbers for most of the transaction and masters like Purchase or Sales document numbers or Customer or Supplier numbers etc. But there is no provision to generate account code automatically so we did an add-on customization where Account code gets generated automatically on the basis on certain criteria. So in this blog we will see how we can achieve this.
One of our client has requested that they required auto generation of account codes on the basis of Classification, Group and Sub Group fields on the account screen. Classification is the Account class field which is based on Legislation and which is stored in Setup -> Finance Account -> Classes. Also Group and Sub Group field which is present in Account screen. So using the combination of the above three fields we have written logic for different account code numbering sequence.
First we will consider the Classification code i.e. a single digit number which will be concatenated with the Group and then Sub group field i.e. 2 digit numbers and further we will concatenate the incremented sequence value to it.
Let’s take up an example for better understanding:
In the above screenshot, Classification field value is 1, Group Value is 04 and Sub-Group value is 02. So the account code starts with “10402”. If this account code sequence is not generated before then we will concatenate 001 to it making the account code as “10402001”.
Now will see another scenario, if the sequence is already generated then program finds the latest value that was auto generated in it and then increment it by 1. In the below screenshot the classification code is 1 and Group is 04 and Sub-Group 02. As we know that this sequence was already generated so now it will generate the new sequence by checking in the database and it will increment the account code by 1 making it as “10402002”.
So whenever new Account code will be generated with this combination, only sequence counter will get incremented and append to the combination of above three fields.
In this way each combination will have their separate sequence counter and will be generated Account code likewise on the basis of Classification code, Group code and Sub-group code.
At first, we will see, what is an Open PO Amount? After creating GRN/Receipt against Purchase Order, remaining amount of PO i.e. (Total PO Amount including Tax – Total Receipt/GRN Amount including tax) is the Open PO Amount. That means Open PO Amount will be calculated until that PO is open. If PO is closed, it will consider ‘0’ Open PO Amount.
How do you check Open PO Amount if the PO is open in Sage X3?
For this purpose, we did customization on Purchasing Inquiry Screens and added a new column for PO Amount in all Purchase Inquiry Screens i.e. in Order Lines, List of Orders, Receipt Lines and List of Receipts.
As we all know, you can create multiple Receipt Entries(GRNs) against one Purchase Order. So in this case, when you create first GRN entry against Purchase Order with some quantity(less than PO qty), remaining amount (including tax) of that particular Purchase Order will be considered as Open PO Amount.
As per the standard functionality of inquiry screens, In Order Lines and Receipt Lines, Open PO Amount is calculated product-wise and in List of Orders and List of Receipts, Open PO Amount is calculated on the basis of total PO and total GRN Amount. In Receipt inquiry, Open PO Amount of last GRN will be considered for all the previous GRNs in case of multiple GRNs.
Now, we will see how the Open PO Amount will be calculated.
As you can see in above table, total Amount (including tax) of Product 2 in PO is 16800 and in GRN it is 11200. So the open PO Amount for Product 2 is (16800 – 11200 = 5600). Now you can check the Open PO Amount calculation for Product 1 by applying the same logic. So with this customization, you can find open PO amount with the inquiry screens. Refer below screenshot of Receipt Lines Inquiry Screen where product-wise Open PO Amount is getting displayed.
And in List of Receipts, total PO Amount including tax is 39200 and total GRN amount including tax is 22400. So the Open PO Amount is (39200 – 22400 = 16800) as shown in the below screenshot of List of Receipts.
Same logic will be used in Order Lines and List of Orders Inquiry screens. Hence with the help of this customization, user can check the open amount of Purchase Order.
As we know, using attachment featured In Sage X3, user can attach various documents/files against any masters or transactions screen. With this feature users can attach file types like word document, Image, Text, PDF and Excel etc. The attached documents can be the reference/source documents of that particular entry. This helps all the users to know the source documents and it also improves efficiency because users can access relevant information easily without wasting time searching through file cabinets and folders.
In this blog, we will see how we can know the number of the attachments attached to particular entry through 4GL script.
“AOBJTXT” table stores of all the attachments which are attached in Sage X3.
Let’s consider, user has attached some attachments to a particular Supplier in Supplier Master Screen.
So using the above script, we can know the number of attachments attached to a particular supplier by just putting filter as supplier code selected on the screen. And then we count total number of attachments through “ROWCOUNT()” function.
Microsoft ERP’s are undoubtedly the most versatile and known for easy customizations. In the Dynamics family, clearly, the big name is Dynamics AX. Microsoft has the trump card ‘AX’ in the ERP segment, which easily competes with other big names like SAP and Oracle. A business owner is thinking about having one of these from the Dynamics series but confused about which one to choose. Continue through this blog which might help you to take the right decision and help your business grow bigger.
Dynamics AX is Microsoft’s enterprise-level ERP and MRP solution and is most popular in the business tycoons.
Reasons For Choosing Microsft Dynamics AX for your Businesses :
If an organization is of an enterprise level and/or yearly turnover is nearly about 1 Million and employee strength is greater than 1000 then AX is the best choice since it is made to cater to these.
Dynamics AX is designed for the companies within the manufacturing, distribution, supply chain & retail industries.
It has great support with multi-country, multi-sites, multi languages and multi-currencies.
As a big ship, it has some cons too. Implementation time and cost are comparatively higher than other Dynamics ERP.
Often it would take a year-long and on-site implementation to work perfectly for your organization.
It has rich features and integration-friendly architecture.
Reasons For Choosing Microsft Dynamics GP for your Businesses :
Dynamics GP is a best of breed, off-the-shelf solution designed for the mid-level organization and for easy customizations.
Dynamics GP is a great solution for integration with other applications and eCommerce sites with the help of eConnect, Extender and many more other applications.
It is very much popular for faster implementation and implementations to have ISV which offers for independent software vendors or third party vendor products as a part of the total prepackaged solution.
Dynamics GP is best popular in North America. It has strong financial management than NAV and famous for distribution companies.
It takes very less time to implement and cost effective than any other from the Dynamics family.
Reasons For Choosing Microsft Dynamics NAV for your Businesses :
Dynamics NAV is very versatile in terms of customizing it.
It just suits perfectly with your business workflow without any hassle and with the help of small customizations.
Dynamics NAV is suitable for mid-sized companies but is also capable of handling enterprise-level organizations too.
The best part is the smooth UI, you know how much UI is important for the end-user and Microsoft implemented it in NAV perfectly.
It allows users to create and modify reports, forms, pages etc. Clearly, it has the best UI rather than other Dynamics ERP.
The new heir to the Dynamics NAV family is Business Central recently launched by Microsoft on-premise version and cloud version is limited to some countries.
NAV holds the upper hand in distribution and manufacturing, but lacks in financials to Dynamics GP and also requires extra time and effort to implement.
According to the business logic, requirements all of the Dynamics ERP’s are good in terms of workflow, automation and integration. Microsoft’s Global enterprise level ERP Dynamics AX fits in with big and large companies, whereas NAV and GP is the best fit for small and mid-level companies.