Boyum Print and Delivery with Multiple Languages and Locations
Utilizing Boyum Print and Delivery is straightforward. Here are the steps: define a Crystal report, assign the report to a “Report Configuration,” and attach Report actions for each button that will be used with this document type.
This demonstrates how to use Boyum Print and Delivery to implement multi-language forms and emails. While the example focuses on multi-language for sales orders, the same techniques can be applied to any document. I am using English and French as the two languages being implemented.
The documentation also covers the multi-location implementation of Boyum Print and Delivery, including the use of “Conditional Report Actions.” It explains how the Crystal Report “commands” can be edited to support multi-language and multi-location implementations.
Additionally, it discusses email functionality, offering multiple methods to assign the “To” email recipient(s), including the use of “Email category” assignment. It provides guidance on using multi-language flags to determine the language used for the email and how to assign one or more “BCC” email contacts using SQL.
B1 Print & Delivery
Boyum has documented the normal implementation of B1 Print & Delivery well. These two implementation examples show you how to implement the printing of documents in multiple languages and for multiple business locations.
It is important to consider both printing and emailing functionality when implementing multi-language and multi-location features. Although the example focuses on a “Sales Order” document, the techniques are applicable to all document types.
Drive Better Engagement with Customers, Suppliers, and Employees with Automated Communication
Scale communication through true automation. In today’s fast-moving and evolving business world, quick and accurate communication is essential for better engagement with employees, customers, and suppliers. As an SAP Business One consultant, I understand the importance of implementing efficient communication strategies. Automation tools have become crucial in achieving this goal. Whether you’re managing internal processes or external interactions, the use of automation tools provides an undeniable advantage by increasing staff productivity, saving money, and achieving impressive business goals.
With B1 Print and Delivery, you can scale your company’s communication through true automation while still preserving the personal touch required to connect with your audience. This powerful tool offers a comprehensive set of features and flexible logic, making it suitable for diverse scenarios. Easily configure the system to automatically handle documents and reports, send emails, create activities, share information through modern collaboration tools, and more.
With B1 Print and Delivery, you can scale your company’s communication through true automation while still preserving the personal touch required to connect with your audience. This powerful tool offers a comprehensive set of features and flexible logic, making it suitable for diverse scenarios. Easily configure the system to automatically handle documents and reports, send emails, create activities, share information through modern collaboration tools, and more.
Instructions:
User view of Multi-Language
In North America there are two typical implementations of multi-language SAP forms and emails. The first is dealing with French Canada where by law a Canadian company must provide documents in the French language. The second is providing Spanish documents and emails when working with Latin American countries.
From a user perspective, the clerk entering the sales order and sending the order acknowledgement by printed document or email is completely transparent. They click the 'Print' button or the 'Email' button on the sales order and the document is sent (email) to the customer in the appropriate language.
Crystal Report Definition
The Crystal Report definition for the 'sales order' links the Boyum 'Documents.rpt' Crystal report - modified by Mascidon. The Crystal report should be located on a networked drive.
Document Print Language
On the sales order form, the logistics tab, there is a 'Language code' field. Normally it defaults to the language being used by SAP. This document assumes that is English. When the sales order has been 'added' or 'updated' the language to use when printing or emailing is updated automatically using Boyum B1 Productivity B1 Validation and a single Universal Function.
B1 Validation is used to capture the Add or Update button click. A SQL condition in the validation determines what language to assign to this sales order. My example of French Canada documents requiring French looks at the ship to location and determines if the 'state' (province) is 'QC'. If it is, a Universal function macro is called to set the language code to French (code = 22). If not, the language code remains its default.
NOTE: the SQL takes into account whether the ship to address is a one time address (RDR12) or a stored ship to address (CRD1).
Printing
The 'Print Report Action' first called is a 'Conditional' Action. The reason for this is that based on the 'location' the format of the sales order form may be different.
There are many ways to define multiple locations for printing purposes:
1. By branch
2. By document numbering series
3. By user entry person
4. By warehouse location
In our example I have chosen to use the warehouse as the determining factor as to which 'format' to use. The main reason is that this is easy to understand, and the warehouse setup includes address information that can be included on the form print.
Depending on the 'warehouse' code in the first line of the sales order, the '01' or '10' warehouse will be used to determine the print action actually used.
The differences between '01' report action 'RA-D001-Detroit' vs RA-D001-Florida are minor but imporatant. For instance, the logo appearing for the Florida location differs from the logo for the Detroit location. The company name and addresses also differ.
The most important requirement for 2 report actions is to assign the networked printer based on the location. This is most easily understood if we use 2 report actions. In the report action, select a networked printer that is located in the Detroit location if using the report action for Detroit, or for a printer in the Florida location if using the report action for Florida.
Email From / To Settings
Boyum B1 Print & Delivery provides options as to the recipient of the email should be. The options are: Contact person on the sales order; Default contact for the BP or consolidation BP; Use email on the main BP screen or the consolidation BP; Email category or consolidation BP email category (I'll explain this further); and direct email.
In the contact setup in the BP master maintenance screen there are 5 'email categories' that could be assigned to each contact.
Assume we define a few 'categories' - such as 'Accounting'; 'Engineering'; 'Management' and 'Receiving'.
A customer could have 5 - 10 or more contacts if they were a large company. Some of these contacts need to get a 'Sales Order' email if you process an email. Let's say that this large company has 2 engineers that need to approve any purchases from your company, and they have a person in accounting that needs to get a copy of the sales order because it will be processed through department. And finally, their receiving clerk needs to get a copy so they can anticipate this delivery. The appropriate contacts for this large customer would be assigned one of the 'categories' based on their job functions.
When setting up the email report action, you would have one 'To' email contact that would be the 'Accounting' category. A second 'To' line would use the email category 'Engineering' so that the 2 engineers get a copy; and lastly another 'To' email category of 'Receiving' would get a copy of the email. In cases of customers without all of these designations, only those that apply would get an email.
NOTE: you can send emails by BP contacts and / or BP consolidation contacts. This capability is often more important when emailing invoices and credit memos as sales orders are likely being processed the customer subsidiary and invoices by the parent company.
BCC Setting For Emails:
You could set up a BCC email to go to the sales person responsible for the sales order. In this case, you would select 'Direct email' and then use SQL to pick up the email for the sales person - here's the code:
SQLMulti:select e.email from ocrd c inner join oslp s on s.slpcode = c.slpcode inner join ohem e on e.salesPrson = s.SlpCode where c.cardcode = '$[$4.0.0]'
From Email Setting
The 'From' email address is defined in the SMTP setup. You can use SQL to define the 'From' email, use a direct entry email such as 'Sales@mycompany.com'.
Boyum Slides
Crystal Report Definition
Connect the Crystal report to utilize for the printing of the sales form. This would normally link to a networked drive. I suggest a path that includes 'B1_SHR' as this directory generally has the appropriate 'rights'.Report Configuration
The 'Report Configuration' tool in B1 Print and Delivery is used to define the actions to take as various buttons are used when the sales order is in focus. There are nine actions that could be taken, but the Print, Print Preview, PDF and Email buttons are the only buttons recommended for use.Print Button
When the print button is clicked this 'Conditional' action executes. It uses the SQL condition to check whether this print refers to location '01' warehouse or location '10' warehouse. Based on the SQL result (and you could use other criteria to determine the action to call), the action executed is either for the Detroit or Florida location.Detroit Report Action
The advantage of using 2 report actions is that the printer can be defined for each action. In either case you would want this printer to be a networked printer that is located in Detroit. The second report action for 'Florida' would point to the Florida location's printer.Email Action
When the user clicks on the Email button this conditional action is initiated. Depending on the language code for the sales order, the next action taken is for an English or French email.English Email
The English email uses dynamic syntax - such as $[$8.0.0] - which is the sales order number. The person sent the email is the contact person associated with the sales order. The sales person is emailed a copy of the sales order for their records. This is done using the SQL command: SQLMulti:select e.email from ocrd c inner join oslp s on s.slpcode = c.slpcode inner join ohem e on e.salesPrson = s.SlpCode where c.cardcode = '$[$4.0.0]' The second 'To' results in an email being sent to every contact for this customer that is flagged with an email category of 'Accounting - Detroit'.French Email
The email in French uses the same wording as the English email except for the language. You could have it more verbose than the English or less so - they don't need to be direct translations of each other.Email Categories
This shows how to set up the email category specific to each contact. Each contact could have up to 5 email categories. Add categories in the drop down of the email categroy by selecting 'Define new'.French Sales Order
All of the captions are in French.English Sales Order
This is the English sales order.Force Language Code
This B1 validation connected to the 'Add or Update' of a sales order (139) will determine if the language needs to be updated in the sales order (see Logistics tab of sales order). In this example, the provincial code of 'QC' is used to indicate that French is required. This result calls the macro UF ML-01.Set Language Code
This macro simply sets the language code to 22 on the sales order. Code 22 = French.
Report Actions
B1 Print & Delivery comes with a Crystal Report 'Documents.rpt'. This is a generalized 'marketing document' that has multi-language capabilities built into it by Boyum. It's a good place to start when creating print forms.
Here are the Boyum B1 Print & Delivery steps:1. Create a Crystal Report definition - this tells B1 Print & Delivery where the Crystal Document is located and some defaults2. Create / modify the Report COnfiguration for Sales orders3. Modify the Report actions as necessary to handle multiple languages
The Report Configuration could have up to 9 different report actions linked to any Crystal Report definition. Some of these will not be used. For example, the actions associated with these buttons are not relevant to multi-language / or are rarely used for sales orders:1. Add button / Document Printing - standard B1 Print & delivery has this button associated with sending an email when the 'Add' button is clicked. With sales orders this is a bad idea. The entry clerk may click 'Add' to save a sales order because they are going to lunch and are part way through entry - a partial order email to the customer is a bad idea. You also don't want 'Document Printing' to perform this function - unless the order has already been 'Approved'.2. Word button - I don't have any customers using this button for sales order processing3. Excel button - I don't have any customers using this button for sales order processing4. Fax button - rarely used anymore
Some of the report actions are 'simple' and do not affect multi-language considerations.1. Print preview - this is used by the entry clerk and simply displays the printed document in preview format. It will display based on the 'language code' selected for this sales order.2. PDF button - this is used by the entry clerk to save a PDF copy of the document and saves the printed document in preview format. It is based on the 'language code' selected for this sales order.
The two buttons of interest are the 'Print' button and the 'Email' button.
The Report Configuration could have up to 9 different report actions linked to any Crystal Report definition. Some of these will not be used. For example, the actions associated with these buttons are not relevant to multi-language / or are rarely used for sales orders:1. Add button / Document Printing - standard B1 Print & delivery has this button associated with sending an email when the 'Add' button is clicked. With sales orders this is a bad idea. The entry clerk may click 'Add' to save a sales order because they are going to lunch and are part way through entry - a partial order email to the customer is a bad idea. You also don't want 'Document Printing' to perform this function - unless the order has already been 'Approved'.2. Word button - I don't have any customers using this button for sales order processing3. Excel button - I don't have any customers using this button for sales order processing4. Fax button - rarely used anymore
Some of the report actions are 'simple' and do not affect multi-language considerations.1. Print preview - this is used by the entry clerk and simply displays the printed document in preview format. It will display based on the 'language code' selected for this sales order.2. PDF button - this is used by the entry clerk to save a PDF copy of the document and saves the printed document in preview format. It is based on the 'language code' selected for this sales order.
The two buttons of interest are the 'Print' button and the 'Email' button.
Sales Order Language Code
Sales Form - 2 Languages
Email Action
When the user clicks the 'Email' button the sales order is emailed to the customer contact(s). The 'Report Action' taken is an Email. The first step performed is a 'Conditional' action - to decide whether to use an Email in French or English.
Could you use a single 'Email Action' rather than one in English and a second in French? Yes. You can use SQL statements within the email subject and body to present information in either French or English. BUT - it's cleaner and easier to see the email text if using 2 different email actions.
Crystal Report Coding
In order to get multi-location functional you 'may' need a separate address for each of the locations. In my example I used the warehouse form to enter an address specific to this warehouse - and this defines my location.
There is a 'CompanyInfo' SQL script for the Crystal report. I added the coding to get the warehouse addresses in this section.
Likewise, the report needs to know which location to use for the 'location' selection. I added SQL code to the 'Header' section. Also added to the Header section was a language translation for the shipping type. This SQL uses the tables OMLT and MLT1 to get the shiping type translation.
The changes to the Crystal report coding are detailed in the Word documentation - which can be downloaded.
'Document Printing' Report Action
Earlier in this document I omitted referencing the 'Document Printing' action. The standard sales order report configuration has 'Document Printing' action as an email to the customer. I would alter that slightly by having it access a 'Conditional Action' - to check whether the sales order approval status flag is set. If set - go ahead and send the email. Otherwise do not send the email.