Click or drag to resize

Internationalization

1. Introduction

Beginning in Epic 2018, 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

The vast majority of 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

Lookups, Activities, Attachments and Transactions 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 areas mentioned above will be both returned and accepted in the culture of choice, no additional calls are necessary.

  • a. Activity, Attachments, and Transactions

    All methods for the Activity, Attachment and Transaction 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 stemming from SDK, 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.

This Code Sample outlines how to convert a French description to a US-Engish description in order to perform an update.

A French description could be obtained from a US-Engish description in a similar way.

5. Lookup types that will require attention if upgrading an endpoint of an existing integration past 2018_01.


In the this section,
"code id" means values such as 65536, 23, etc.
"code text" means values such as “P”, “A01”, etc.
"description text" means values such as “Public” , “Inactive”, etc.

-Using endpoints prior to 2018 displayed: Code: {description text}, Description: {description text}
-Using a 2018 or later endpoint displays: Code: {code text}, Description: {description text}

  • InvoicePageBreak
  • StatementPageBreak
  • ContactVia
  • ContactMethod
  • DeliveryMethod
  • MarketingMethod
  • CallPermission
  • CreditBureau
  • BusinessType
  • NatureOfBusiness
  • BatchPaymentMethod
  • InvoiceToType
  • TransactionInvoiceToType
  • ClosedStatus
  • Priority
  • TaskStatus
  • ActivityAssociatedToType
  • PaymentType
  • LossType
  • PayeeType
  • PhoneNumberType
  • TermDefault
  • BillingMode
  • BatchPaymentMethod

-Using endpoints prior to 2018 displayed: Code: {description text}, Description: {empty string}
-Using a 2018 or later endpoint displays: Code: {code text}, Description: {description text}

  • VehicleCompOTCSym
  • VehicleCollSym
  • AccessLevel
  • TaskOwnerType
  • AttachmentFolder
  • AttachmentFolderByEntity
  • AttachmentAccessLevel
  • AvailableRiskType

-Using endpoints prior to 2018 displayed: Code: {description text}, Description: {empty string}
-Using a 2018 or later endpoint displays: Code: {code id}, Description: {description text}

  • InActivateReason
  • AccountStatus
  • AgencyDefinedCategory
  • ADC
  • AgencyDefinedCategoryOption
  • InvoiceLayout
  • DefinedRelationships
  • StatementLayout
  • OpportunityStageGroup
  • OpportunityLostReasons
  • ClosedReason
  • AvailableRiskTypeForCustomForm
  • Involvement
  • Prefix
  • Suffix
  • ADCCategories
  • Language
  • Occupation
  • Classification
  • ContactDescription
  • AddressDescription
  • MarketingSubmissionStatus
  • CarrierResponseDescription
  • TransactionBinderBillStatus
  • BillingPlan

-Using endpoints prior to 2018 displayed: Code: {empty string}, Description: {description text}

-Using a 2018 or later endpoint displays: Code: {code id}, Description: {description text}

  • AccountSource

-Using endpoints prior to 2018 displayed: Code: {empty string}, Description: {description text}
-Using a 2018 or later endpoint displays: Code: {code text}, Description: {description text}

  • ContractType
  • AttachmentAttachTo
  • PaymentDueDate

-Using endpoints prior to 2018 displayed: Code: {code text}, Description: {empty string}
-Using a 2018 or later endpoint displays: Code: {code text}, Description: {description text}

  • OpportunityOwnerMemberType
  • OpportunityClosedStatus

OpportunityStage

-Using endpoints prior to 2018 displayed: Code: {name}, Description: {weight}
-Using a 2018 or later endpoint displays: Code: {code id}, Description: {name ; weight}

VehicleMakeModel

-Using endpoints prior to 2018 displayed: Code: {make description}, Description: {model description}
-Using a 2018 or later endpoint displays: Code: {code id}, Description: {make description ; model description}

ClaimType

-Using endpoints prior to 2018 displayed: Code: {Claim type description}, Description: {loss notice description}
-Using a 2018 or later endpoint displays: Code: {code id}, Description: {Claim type description ; loss notice description}

AvailableRiskTypeForCustomForm

-Using endpoints prior to 2018 displayed: Code: {description text}, Description: {empty string}
-Using a 2018 or later endpoint displays: Code: {code guid}, Description: {description text}

NAICSCategory

-Removed description just for the "ALL" entry.

SICCategory

-Removed description just for the "ALL" entry.
-Added: "; CountryCode" to Description.

SIC

-Added: "; CountryCode" to Description.

EmployeeAuthorizedSignatureUserIndividualEmployee

-Using endpoints prior to 2018 displayed: Code: {employee lookup code}, Description: {employee name}
-Using a 2018 or later endpoint displays: Code: {employee name}, Description: {employee lookup code}

OtherInterestCode

-No longer accepts spaces in the input for the LookupCodeBeginsWith/AccountNameContains parameter.

ReceiptDetailItemPayablesCommissionsItemsAccountLocateBy

-Epic formats the values slightly differently

ReceiptDetailItemPayablesCommissionsItemsAccountLocateBy

-Epic formats the values slightly differently

LimitLossPayCode

-Internal change only. However, please retest to verify there are no side effects.