0% found this document useful (0 votes)
101 views

Integration Data Mapping Template v1

This document provides a template for mapping data between different systems as part of an integration project. It includes sections for overview information, the mapping sheet which defines the data fields and properties to map, and a sample data sheet. The mapping sheet has multiple columns to define properties of the data fields from each system, including how the data will flow between the systems. The document also provides information on versioning the template and includes sample data to demonstrate how the completed mapping would look.

Uploaded by

Ashish Tiwari
Copyright
© © All Rights Reserved
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
101 views

Integration Data Mapping Template v1

This document provides a template for mapping data between different systems as part of an integration project. It includes sections for overview information, the mapping sheet which defines the data fields and properties to map, and a sample data sheet. The mapping sheet has multiple columns to define properties of the data fields from each system, including how the data will flow between the systems. The document also provides information on versioning the template and includes sample data to demonstrate how the completed mapping would look.

Uploaded by

Ashish Tiwari
Copyright
© © All Rights Reserved
Available Formats
Download as XLSX, PDF, TXT or read online on Scribd
You are on page 1/ 42

This workbook can be used as template to start data mapping activity for any complex in

which talks about main field/data mapping but can be extended to meet the need of diff
How to version this document - Versioning of this document is all depend on the collabo
confluence or sharepoint keep history of all changes made. If used this in plain excel form
version in the name of file to differentiate new version.

Overview - Details such as name of the use case, short description, preparer, etc can be a

Mapping - This sheet describes field/data specific mapping. It has multiple column to defi
systems considered for the mapping. Click on each column to know more about it.

SampleData- This sheet has sample data to get idea of, how the mapping sheet will look
exercise.
ctivity for any complex integration. It has Mapping sheet
d to meet the need of different system's mapping.
all depend on the collaboration tool used. Tools like
ed this in plain excel format, it is recommended to use

on, preparer, etc can be added in this sheet.

as multiple column to define different properties of the


now more about it.

e mapping sheet will look like after completion of the


Customer Logo

Name of the usecase

Short description

Prepared/Modified By

Date

References
Sr No Type Link
1 BRD
2 Design document
3 Postman Collection
Overall System 1

Way to extract or
Data Flow set data to/from Data Field Field Description Data Type
system
System 2

Data Way to extract or set


Data Field Field Description
Example data to/from system
Data Type Data Example Required by integration Exceptions
Overall

Notes
Overall

Tested? Action Items:


Overall Cayenta

Way to extract or
Data Flow set data to/from Data Field Field Description Data Type
system

From Cityworks to Cayenta SetServiceOrder RESOLUTION_CD Resolution Code Char(5)

From Cityworks to Cayenta SetServiceOrder RESOLVED_BY Resolved By Char(8)


From Cityworks to Cayenta SetServiceOrder RESOLUTION_DT Resolution Date YYYYMMDD

From Cityworks to Cayenta SetServiceOrder RESOLUTION_TM Resolution Time HHMMSS

From Cayenta to Cityworks GetServiceOrder RESOLUTION_CD Resolution Code Char(5)


From Cayenta to Cityworks GetServiceOrder RESOLUTION_CD Resolution Code Char(5)

From Cayenta to Cityworks GetServiceOrder RESOLUTION_CD Resolution Code Char(5)

From Cayenta to Cityworks GetServiceOrder RESOLVED_BY Resolved By Char(5)


From Cayenta to Cityworks GetServiceOrder RESOLVED_BY Resolved By Char(5)

RESOLUTION_DT &
From Cayenta to Cityworks GetServiceOrder RESOLUTION_TM Resolution Date and YYYYMMDD &

RESOLUTION_DT &
From Cayenta to Cityworks GetServiceOrder RESOLUTION_TM Resolution Date and YYYYMMDD &

From Cayenta to Cityworks GetServiceOrder RESOLVED_BY Resolved By Char(5)

From Cayenta to Cityworks GetServiceOrder RESOLVED_BY Resolved By Char(5)


RESOLUTION_DT & YYYMMDD &
From Cayenta to Cityworks GetServiceOrder RESOLUTION_TM Resolution Date HHMMSS
Cityworks

Way to extract or set


Data Example Data Field Field Description
data to/from system

CMPLT GetCustomFieldsById SO Specific Custom Field Resolution Code

CHADR GetWorkOrderById ClosedBySid Closed By System Id


20190716 GetWorkOrderById DateWOClosed Date Closed

133000 GetWorkOrderById DateWOClosed Date Closed

CMPLT (any code other tCloseWorkOrder Close Close


CNCLD CancelWorkOrder Cancel Cancel

CMPLT (any Resolution cod


UpdateWorkOrder SO Specific Custom Field Resolution

CMPLT CloseWorkOrder Closed By? Closed By?


CHADR UpdateWorkOrder CompletedBySid Completed By

20190701 & 120000 CloseWorkOrder DATEWOClosed Date Closed

20190701 & 120001 UpdateWorkOrder ActualFinishDate Date Work Completed

SWAPV CancelWorkOrder Canceled By? Canceled By?

SWAPV CancelWorkOrder CancelReason Cancel Reason


CancelWorkOrder DateCanceled Date Canceled
Data Type Data Example Required by integration Exceptions

If step 1 fails, log an exception


and send an email/heat ticket.
If step 2: n/a
If step 3 fails, log an exception
and send an email/heat ticket.
NVARCHAR2(250 CHARCMPLT - Completed 1

If Step 1 fails, log an exception


and send an email/heat ticket.
If Step 2 fails, log an exception
and send an email/heat ticket.
If Step 3 fails, log an excepion
and send an email/heat ticket.
If Step 4 fails, log an exception
and send an email/heat ticket.
NUMBER(10,0) 2256 0
If Step 1 fails, log an exception
and send an email/heat ticket.
If Step 2 fails, log an exception
and send an email/heat ticket.
If Step 3 fails, log an excepion
and send an email/heat ticket.

At least a RESOLUTION_DT is
required when populating the
Resolution code. If we do not
have a date value to send to CU
TIMESTAMP(7) 2019-07-16T08:21:50 0 we cannot resolve the work.

If Step 1 fails, log an exception


and send an email/heat ticket.
If Step 2 fails, log an exception
and send an email/heat ticket.
If Step 3 fails, log an excepion
and send an email/heat ticket.

At least a RESOLUTION_DT is
required when populating the
Resolution code. If we do not
have a date value to send to CU
TIMESTAMP(7) 2019-07-16T08:21:50 0 we cannot resolve the work.

If the RESOLUTION_CD in
Cayenta is anything other than
CNCLD/Canceled or null we
need to close the SO/WO in
Cityworks as follows:

Step 1: If the call fails, log an


exception and send an
emailheat ticket. If the value is
canceled or null refer to other
mapping lines and stop this
closure.
Step 2: If the call fails, log an
exception and send an
n/a n/a 0 email/heat ticket.
If the RESOLUTION_CD in
Cayenta is anything other than
CNCLD/Canceled or null we
need to close the SO/WO in
Cityworks as follows:

Step 1: If the call fails, log an


exception and send an
emailheat ticket. If the value is
canceled or null refer to other
mapping lines and stop this
closure.
Step 2: If the call fails, log an
exception and send an
n/a n/a 0 email/heat ticket.

If Step 1 fails, log an exception


and send an email/heat ticket
If Step 2 fails, log an exception
and send an email/heat ticket.
If Step 3 fails, log an exception
and send an email/heat ticket.
NVARCHAR2(250 CHARCMPLT - Completed 0

FALSE
Step 1: If the call fails, log an
exception and send an
email/heat ticket.
Step 2: If the database lookup
fails or the expected value is
blank, log an exception and
send an email/heat ticket.
Step 3: If the call fails or no
value is returned, log an
exception and send an
email/heat ticket.
Step 4: If the call fails, log an
exception and send an
NUMBER(10,0) 2256 0 email/heat ticket.

TIMESTAMP(7) 2019-07-16T08:21:49 FALSE

Step 1: If the call fails, log an


exception and send an
email/heat ticket. If the
RESOLUTION_DT is null, stop
the call. If the
RESOLUTION_TM is nul it is no
problem.
Step 2: n/a
Step 3: If the call fails log an
exception and send an
TIMESTAMP(7) 2019-07-16T08:21:50 0 email/heat ticket

FALSE

If Step 1 fails, log an exception


and send an email/heat ticket.
If step 2 fails: n/a
If step 3 fails, log an exception
NVARCHAR2(100 CHARCanceled by CHADR in Cayen0 and send an email/heat ticket.
Step 1: If the call fails, log an
exception and send an
email/heat ticket. If the
RESOLUTION_DT is null, stop
the call. If the
RESOLUTION_TM is null it is no
problem. Just populate 000000
for time piece. No worries on
time zone translations.
Step 2: n/a
Step 3: If the call fails log an
exception and send an
TIMESTAMP(7) 2019-07-16T08:21:50 1 email/heat ticket.
Overall

Notes

Step 1: Use the WorkOrderId from the CW trigger to make a


GetCustomFields call to CW. In the return, search for the
CustFieldName parameter equal to "Resolution". Take the value
from the CustFieldValue parameter.
Step 2: From the value returned in step 1, extract the code from
before the - in the returned value. i.e. Take CMPLT from CMPLT -
Completed.
Step 3: Use the extracted value to populate the RESOLUTION_CD
parameter of a SetServiceOrder call to Cayenta.

Step 1: Use the WorkOrderId from the CW trigger to make a


GetWorkOrder call to get the ClosedBySid value. If this value is
equal to the EIP user, the loop is closed. If not, continue to step 2.
Step 2: Use the ClosedBySid value as the EmplpyeeSid parameter
of a GetEmployeeById call. Take the returned LoginName value.
Step 3: Using the LoginName value from step 2, do a DB lookup
within cayenta for the user_id value. (Select user_id From tb1
Where login_nm = "SWAPV";).
Note: the login_nm value is case sensitive and will need to be in
all caps to get a return. This may require translation from
Cityworks returned value.
Step 4: Use the user_id value to populate the RESOLVED_BY
parameter of a SetServiceOrder call to Cayenta.
Note: The RESOLVED_BY parameteris not documented on the
SetServiceOrder call, but it seems to work as expected when
including the tag.
For situations when we are closing from cityworks to cayenta...

Step 1: Use the WorkOrderId from the CW trigger to make a


GetWorkOrder call to get the DateWOClosed value.
Step 2: Take the returned DateWOClosed value and break it into
two pieces for Cayenta. Cayenta needs a value for date and a
seperate value for time. The values will also need to be translated
to the format needed for Cayenta. We should not be concerned
with any time zone differences.
Step 3: Use the re-formatted DateWOClosed value to populate the
RESOLUTION_DT and RESOLUTION_TM parameters of a
SetServiceOrder call.

For situations when we are closing from cityworks to cayenta...

Step 1: Use the WorkOrderId from the CW trigger to make a


GetWorkOrder call to get the DateWOClosed value.
Step 2: Take the returned DateWOClosed value and break it into
two pieces for Cayenta. Cayenta needs a value for date and a
seperate value for time. The values will also need to be translated
to the format needed for Cayenta. We should not be concerned
with any time zone differences.
Step 3: Use the re-formatted DateWOClosed value to populate the
RESOLUTION_DT and RESOLUTION_TM parameters of a
SetServiceOrder call.

If the RESOLUTION_CD in Cayenta is anything other than


CNCLD/Canceled or null we need to close the SO/WO in Cityworks
as follows:

Step 1: Take the ACTION_NO from the poll/trigger to make a


GetServiceOrder call to get the RESOLUTION_CD.
Note: If the RESOLUTION_CD is anything but Canceled or null,
move to step 2. If it is canceled or null, follow other mapping
rules. You want to take the top most returned RESOLUTION_CD
value. Any RESOLUTION_CD value within the <RESOLUTIONS> tags
are from previous SOs and do not apply to the current SO.
Step 2: Update the other mapped fields for UC4/UC3 as needed
and then make a CloseWorkOrder call to Cityworks.
If the RESOLUTION_CD in Cayenta is CNCLD/Canceled, then we
need to cancel the SO/WO in Cityworks as follows:

Step 1: Take the ACTION_NO from the poll/trigger to make a


GetServiceOrder call to get the RESOLUTION_CD.
Note: If the RESOLUTION_CD is Canceled, move to step 2. If it is
not canceled, follow other mapping rules. You want to take the
top most returned RESOLUTION_CD value. Any RESOLUTION_CD
value within the <RESOLUTIONS> tags are from previous SOs and
do not apply to the current SO.
Step 2: Update the other mapped fields for UC4/UC3 as needed
and then make a CancelWorkOrder call to Cityworks.

Step 1: Take the ACTION_NO from the poll/trigger to make a


GetServiceOrder call to get the RESOLUTION_CD and the
FOREIGN_ID values.
Note:You want to take the top most returned RESOLUTION_CD
value. Any RESOLUTION_CD value within the <RESOLUTIONS> tags
are from previous SOs and do not apply to the current SO.
Step 2: Use the FOREIGN_ID value to populate the WorkOrderId
parameter of a GetWorkOrder call to CW.
In the return, search for the "CustFieldName = Resolution" and
take the associated CustFieldId value.
Step 3: Take the RESOLUTION_CD value from step 1 and the
CustomFieldId value from step 3 and properly format the
CustomFields parameter of the UpdateWorkOrder call to CW.
Note: Since it is a required field in CW, any RESOLUTION_CD needs
to be mapped to the custom field for resolution code in CW before
we make the call to Close or Cancel the work order in CW.

For close situations from Cayenta to cityworks...

This field mapping will rely on the EIP user of the CloseWorkOrder
call and will be used to signify closing the loop between systems.

There is no API methodology to populate the ClosedBy value


unless we lookup and use the user's token with the API call or do a
direct database update. We will have extra coverage with the
CompletedBy field mapping below on line 13.
For situations where we are closing from cayenta to cityworks...

Step 1: Use the ACTION_NO from the Cayenta poll/trigger to


make a GetServiceOrder call to get the RESOLVED_BY value.
Step 2: Using the RESOLVED_BY value, do a database lookup in
Cayenta for user's login_nm. (Select login_nm From tb1 Where
user_id = 'SWAPV';)
Step 3: Use the returned login_nm value to populate the
LoginName parameter(not case sensitive) of an EmployeeSearch
call to CW. Also, populate the "IsActive" parameter as true. Take
the returned EmployeeSid value.
Step 4: Use the EmployeeSid value to populate the
CompletedBySid parameter of an UpdateWorkOrder call to CW.
Note: We need to make the update call before the call to closing
the WO.

We will need to rely on the time of the CloseWorkOrder call unless


we want to do a direct database update. We will have extra
coverage w/ the ActualFinishDate, see the following mapping line.

For situations where we are closing from cayenta to cityworks...

Step 1: Take the ACTION_NO from the Cayenta poll/trigger to


make a GetServiceOrder call to get the RESOLUTION_DT &
RESOLUTION_TM values.
Step 2: Take the two values from step 1 and join them into one
date/time value in the format needed for CW.
Step 3: Take the new value from step 2 and populate the
ActualFinishDate parameter of an UpdateWorkOrder call.
Note: Make the updateworkorder call before making the
closeworkorder call.

There is no API methodology to populate the CanceledBy value


unless we lookup and use the user's token with the API call or do a
direct database update. We should use the cancel reason
mapping on the following line to address this.

For situations where we are canceling from cayenta to cityworks...

Step 1: Take the ACTION_NO from the poll/trigger to make a


GetServiceOrder call to get the RESOLVED_BY value.
Step 2: Take the value returned in step one and create a new
string value in this format: "Canceled by <RESOLVED_BY> in
Cayenta" or "Canceled by CHADR in Cayenta."
Step 3: Take the newly created value and populate the
CancelReason parameter of a CancelWorkOrder call to CW.
If a SO is Canceled in Cayents, then:
Step 1: Take the action_no from the poll/trigger and make a
GetServiceOrder call to get the RESOLUTION_DT and
RESOLUTION_TM values.
Step 2: Join the two date and time values into one value in the
proper date format for Cityworks.
Step 3: Take the joined date/time from step 2 to populate the
DateCanceled parameter of a CancelWorkOrder call to Cityworks.
Overall

Tested? Action Items:

Yes, passed.

Yes, passed.
Yes, passed.

Yes, passed.

Yes, passed.
Yes, passed.

Yes, passed.

Yes, passed.
Yes, passed.

Yes, passed.

Yes, passed.

Yes, passed.

Yes, passed.
Yes, passed.

You might also like