![]() | |
Internationalization |
1. Introduction
Beginning in Epic 2018.1, SDK has been enhanced to return data translated in any culture that is supported by Epic. To provide this functionality, the existing SDK Message Header that is required on all SDK method calls will now contain a culture property that will allow data to be returned in a specified culture on a per call basis. If the property is not set, the default en-US will continue to be applied.
2. Dates
All dates and times within the SDK are saved and retrieved as Coordinated Universal Time (UTC). It will be necessary to convert any values entered into your implementation by your users to UTC prior to doing a save or update, and also, any dates retrieved form the SDK will need to be converted to a date/time which is local to your user before presenting within your implementation.
3. Supported Methods
Attachments and Lookups are the only areas in SDK that will acknowledge the culture property in the message header. Translations in other areas of SDK are made possible by using the Lookup methods to retrieve the translated values. The data for these (Attachments and Lookups) will be both returned and accepted in the culture of choice, no additional calls are necessary.
a. Attachments
Insert, Get and Update Attachment methods now fully support multiple cultures. This means that data will be both returned and accepted in the culture of choice, no additional calls are necessary. Simply provide the desired culture in the message header and the correct data will be returned by SDK. Note that only data that contains translations in Epic will be translated. These are generally limited to Configure items, where the description for multiple cultures are available to be defined. This will not translate data in text fields, error messages, or any API members such as property name, enumerators, etc.
b. Lookups
The Get Lookup method will return the list of lookups in the desired culture when the culture property on the message header is set. Lookups are returned with a code and a description. The code remains the same in all cultures, the description is returned in the desired culture. Because lookup parameters are accepted as a list of strings, any parameter that represents a date should always be passed with the format of 'mm/dd/yyyy' no matter what culture is specified.
For code examples please click on the following link:
Code Examples Attachment and Lookup supporting culture
4. Support For Other Methods
All other areas of SDK will not recognize the culture property in the message header. To translate values in other areas, it is necessary to leverage the Get Lookup method. By calling this method twice, once with the en-US culture and once with the desired culture, it is possible to map the English value to the desired value by using the lookup's code property. When retrieving or updating data though integration projects using the SDK, these lookup methods must be used to translate the necessary values out of and back in to the en-US culture.
5. Lookup types that will require attention if upgrading an endpoint of an existing integration past 2018_01 or beyond
InvoicePageBreak
InvoiceLayout
StatementPageBreak
StatementLayout
ContractType
PaymentDueDate
OpportunityOwnerMemberType
OpportunityStage
OpportunityStageGroup
OpportunityClosedStatus
OpportunityLostReasons
AccountSource
AccessLevel
ClosedReason
ClosedStatus
Priority
TaskStatus
TaskOwnerType
ActivityAssociatedToType
VehicleCompOTCSym
VehicleCollSym
PaymentType
LossType
AvailableRiskType
AvailableRiskTypeForCustomForm
PayeeType
Involvement
AttachmentFolder
AttachmentAccessLevel
AttachmentAttachTo
PhoneNumberType
TermDefault
BillingMode
ContactVia
ContactMethod
DeliveryMethod
MarketingMethod
CallPermission
CreditBureau
BusinessType
NatureOfBusiness
BatchPaymentMethod
EmployeeAuthorizedSignatureUserIndividualEmployee
MarketingSubmissionStatus
CarrierResponseDescription
OtherInterestCode
BillingPlan
InvoiceToType
LimitLossPayCode
ReceiptDetailItemPayablesCommissionsItemsAccountLocateBy
ReceiptDetailItemPayablesCommissionsItemsAccountLocateBy
TransactionInvoiceToType
TransactionBinderBillStatus
InstallmentPlan