Difference between revisions of "REST API:import Mapping Profile Resource"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
m (Text replace - '{domain}' to '{{domain}}')
 
(40 intermediate revisions by the same user not shown)
Line 1: Line 1:
Manage import field-mapping profiles using the [[REST API]].
Manage import [[Manage_Data_Import#Mapping Profile|Mapping Profiles]] using the [[REST API]].


:''Learn more:'' REST API [[REST API#Conventions and Considerations|Conventions and Considerations]].
''Learn more:''
:* [[REST API:bulk Resource|bulk import]] Resource for importing data
:*  REST API [[REST API#Conventions and Considerations|Conventions and Considerations]].


===Permissions===
===Permissions===
{{permissions|Manage Develop Features|use this resource.}}
{{permissions|Use Development Features|use this resource.}}


===List Import Field-Mapping Profiles===
===List Import Field-Mapping Profiles===
Line 10: Line 12:
;Method:GET
;Method:GET
   
   
;URI:<tt><nowiki>https://{domain}/networking/rest/import/{objectName}/{mapping_profile_name}</nowiki></tt>
;URI:<tt><nowiki>https://{{domain}}/networking/rest/import/mappingProfile/{objectName}</nowiki></tt>  
:Return all fields
;URI:<tt><nowiki>https://{domain}/networking/rest/import/{objectName}/{mapping_profile_name}?{query_parameters}</nowiki></tt>  
 
{{Query Parameters|
:Introductory sentence, if any
:*<tt>parameter1</tt> - Description
:*<tt>parameter2</tt>
::* If TRUE, ...
::* If FALSE, ...}}


;Response:
;Response:
Line 32: Line 25:
         <date_modified>2012-03-14T20:51:37.000Z</date_modified>
         <date_modified>2012-03-14T20:51:37.000Z</date_modified>
         <modified_id  
         <modified_id  
           type=""  
           type="" uri="https://.."  
          uri="https://localhost/networking/rest/USER/1424089492"  
           displayValue="John Doe">1424089492</modified_id>
           displayValue="John Doe">1424089492</modified_id>
         <created_id           
         <created_id           
Line 41: Line 33:
         <mapping>
         <mapping>
             <energy csvColumnName="Energy (kWh)">2</lk>
             <energy csvColumnName="Energy (kWh)">2</lk>
             <numberField csvColumnName="Number">1</activiti_foreign_key>
             <numberField csvColumnName="Number">1</numberField>
         </mapping>
         </mapping>
         <advancedOptions>
         <advancedOptions>
             <mergeOptions>MERGE_USING_PRIMARY_KEY</mergeOptions>
             <mergeOptions>MERGE_USING_PRIMARY_KEY</mergeOptions>
             <recordOwner           
             <recordOwner           
               type=""  
               type="" uri="https://..."  
              uri="https://localhost/networking/rest/USER/1424089492"  
               displayValue="John Doe">1424089492</recordOwner>
               displayValue="John Doe">1424089492</recordOwner>
             <lookupFieldOptions>
             <lookupFieldOptions>
                 <lookupFieldOption lookupColumnName="Lk">time_field</lookupFieldOption>
                 <lookupFieldOption  
                    lookupColumnName="Lk">time_field</lookupFieldOption>
             </lookupFieldOptions>
             </lookupFieldOptions>
         </advancedOptions>
         </advancedOptions>
Line 73: Line 65:
;Method:GET
;Method:GET
   
   
;URI:<tt><nowiki>https://{domain}/networking/rest/import/{objectName}/{mapping_profile_name}</nowiki></tt>
;URI:<tt><nowiki>https://{{domain}}/networking/rest/import/mappingProfile/{objectName}/{mapping_profile_name}</nowiki></tt>


;Response:
;Response:
Line 86: Line 78:
         <date_modified>2012-03-14T20:51:37.000Z</date_modified>
         <date_modified>2012-03-14T20:51:37.000Z</date_modified>
         <modified_id  
         <modified_id  
           type=""  
           type="" uri="https://..."  
          uri="https://localhost/networking/rest/USER/1424089492"  
           displayValue="John Doe">1424089492</modified_id>
           displayValue="John Doe">1424089492</modified_id>
         <created_id           
         <created_id           
Line 95: Line 86:
         <mapping>
         <mapping>
             <energy csvColumnName="Energy (kWh)">2</lk>
             <energy csvColumnName="Energy (kWh)">2</lk>
             <numberField csvColumnName="Number">1</activiti_foreign_key>
             <numberField csvColumnName="Number">1</numberField>
         </mapping>
         </mapping>
         <advancedOptions>
         <advancedOptions>
Line 104: Line 95:
               displayValue="John Doe">1424089492</recordOwner>
               displayValue="John Doe">1424089492</recordOwner>
             <lookupFieldOptions>
             <lookupFieldOptions>
                 <lookupFieldOption lookupColumnName="Lk">time_field</lookupFieldOption>
                 <lookupFieldOption  
                    lookupColumnName="Lk">time_field</lookupFieldOption>
             </lookupFieldOptions>
             </lookupFieldOptions>
         </advancedOptions>
         </advancedOptions>
Line 122: Line 114:
;Method:POST
;Method:POST
   
   
;URI:<tt><nowiki>https://{domain}/networking/rest/import/{objectName}</nowiki></tt>  
;URI:<tt><nowiki>https://{{domain}}/networking/rest/import/mappingProfile/{objectName}</nowiki></tt>  


;Request:
;Request:
Line 128: Line 120:
<platform>
<platform>
     <mappingProfile>
     <mappingProfile>
         <field>data</field>
         <name>TestMap</name>
        ...
        <description/>
        <mapping>
            <energy csvColumnName="Energy (kWh)">2</lk>
            <numberField csvColumnName="Number">1</numberField>
        </mapping>
        <advancedOptions>
            <mergeOptions>MERGE_USING_PRIMARY_KEY</mergeOptions>
            <recordOwner
                type="" uri="https://..."
                displayValue="Justin Thyme">764db24986</recordOwner>
            <lookupFieldOptions>
                <lookupFieldOption
                    lookupColumnName="Lk">time_field</lookupFieldOption>
            </lookupFieldOptions>
        </advancedOptions>
     </mappingProfile>
     </mappingProfile>
</platform>
</platform>
Line 150: Line 156:
;Method:PUT
;Method:PUT
   
   
;URI:<tt><nowiki>https://{domain}/networking/rest/import/{objectName}/{mapping_profile_name}</nowiki></tt>  
;URI:<tt><nowiki>https://{{domain}}/networking/rest/import/mappingProfile/{objectName}/{mapping_profile_name}</nowiki></tt>  


;Request:
;Request:
Line 156: Line 162:
<platform>
<platform>
     <mappingProfile>
     <mappingProfile>
         <id>{recordId}</id>
         <name>TestMap</name>
        ...
        <description/>
        <mapping>
            <energy csvColumnName="Energy (kWh)">2</lk>
            <numberField csvColumnName="Number">1</numberField>
        </mapping>
        <advancedOptions>
            <mergeOptions>MERGE_USING_PRIMARY_KEY</mergeOptions>
            <recordOwner
                type="" uri="https://..."
                displayValue="Justin Thyme">764db24986</recordOwner>
            <lookupFieldOptions>
                <lookupFieldOption
                    lookupColumnName="Lk">time_field</lookupFieldOption>
            </lookupFieldOptions>
        </advancedOptions>
     </mappingProfile>
     </mappingProfile>
</platform>
</platform>
Line 178: Line 198:
;Method:DELETE
;Method:DELETE


;URI:<tt><nowiki>https://{domain}/networking/rest/import/{objectName}/{mapping_profile_name}</nowiki></tt>
;URI:<tt><nowiki>https://{{domain}}/networking/rest/import/mappingProfile/{objectName}/{mapping_profile_name}</nowiki></tt>
:Record ID of the mapping profile can also be specified.


;Response:
;Response:
Line 191: Line 212:


:See also: [[REST API:Error Codes]]
:See also: [[REST API:Error Codes]]


===Fields===
===Fields===
:''Note:'' Unless otherwise indicated, the attribute for a field is "Editable on Add or Update".
:''Note:'' Unless otherwise indicated, the attribute for a field is "Editable on Add or Update".
:{| border="1" cellpadding="5" cellspacing="0"
:{| border="1" cellpadding="5" cellspacing="0"
! Name!!Type!!Attribute!!Required on Add!!Description!!Additional Information
! Name!!Type!!Attribute!!Required on Add/Update!!Description!!Additional Information
|-
|-
| id || String || align="center"|Read Only || || || [[Record Id]]
| id || String || align="center"|Read Only || || || [[Record Id]]
|-
|-
| name || String || || align="center"|[[File:Checkmark.gif|link=]] || ||  
| name || String || || align="center"|[[File:Checkmark.gif|link=]] || Mapping profile name ||  
|-
|-
| description || String || || || ||  
| description || String || || || ||  
 
|-
|-
| ...|| ... || ... || ... || ... || ...
| [[#mapping Tag|mapping]] || Tag || || align="center"|[[File:Checkmark.gif|link=]] || Describes the mapping betweeen the CSV columns and Platform fields.||  
|-
|-
| tag || String || align="center"|Read Only || || description || AddlInfo
| [[#advancedOptions Tag|advancedOptions]] || Tag || || align="center"|[[File:Checkmark.gif|link=]] || Defines additional mapping profile options ||  
|-
| tag || String || || || description || AddlInfo
|-
| tag || String || || align="center"|[[File:Checkmark.gif|link=]] || description || AddlInfo
|-
| tag || String || align="center"|Writable on Add only || align="center"|[[File:Checkmark.gif|link=]] || description || AddlInfo
|-
| ...|| ... || ... || ... || ... || ...
|-
| ...|| ... || ... || ... || ... || ...


|-  
|-  
| colspan="6"  bgcolor="Azure" style="height:7px" |  <!-- SPACER ROW -->
| colspan="6"  bgcolor="lightblue" style="height:7px" |  <!-- SPACER ROW -->


|-
|-
Line 230: Line 241:
| modified_id || Lookup || align="center"|Read Only || || || [[REST API:User Resource|User]] ID
| modified_id || Lookup || align="center"|Read Only || || || [[REST API:User Resource|User]] ID
|}
|}
-or-
 
====mapping Tag====
:{| border="1" cellpadding="5" cellspacing="0"
:{| border="1" cellpadding="5" cellspacing="0"
! Name !! Type !! Attribute !! Default Value !! Description !! Additional Information
! Name!!Type!!Required on Add/Update!!Description!!Additional Information
|-
|-
| tag || String || align="center"|Read Only || Default || description || AddlInfo
| ''platform field'' || Number || align="center"|[[File:Checkmark.gif|link=]] || CSV column number || The tag name is the name of an object field. The number is the CSV data column it maps to. The first column is column "zero". So <tt><phone>1</phone></tt> maps the second CSV column to the <tt>phone</tt> field.
|-
|-
| tag || String || || Default || description || AddlInfo
| csvColumnName || Attribute ||align="center"|[[File:Checkmark.gif|link=]] || CSV-column identifier || The value of this attribute is displayed in the GUI to help a user map the intended columns.<br>''Learn more:'' [[Data_Import#Use_the_Data_Import_Wizard|Data Import Wizard]]
|-
|}
| ...|| ... || ... || ... || ... || ...
 
====advancedOptions Tag====
:{| border="1" cellpadding="5" cellspacing="0"
! Name!!Type!!Required on Add!!Description!!Additional Information
|-
|-
| ...|| ... || ... || ... || ... || ...
| mergeOptions || String || || Possible values:
 
* DO_NOT_MERGE
|-
* MERGE_USING_PRIMARY_KEY
| colspan="6"  bgcolor="Azure" style="height:7px" |  <!-- SPACER ROW -->
* MERGE_USING_RECORD_ID
| MERGE_USING_RECORD_ID works only if the record_id field is mapped.


|-
|-
| date_modified || Date || align="center"|Read Only || || || [[UTC Format]]
| recordOwner || Lookup || || Default record owner || A [[User]] ID.<br>''Learn more:''  [[Data_Import#Data_Ownership|Data Ownership]]
|-
|-
| date_created || Date || align="center"|Read Only || || || [[UTC Format]]
| [[#lookupFieldOptions Tag|lookupFieldOptions]] || Tag  || || One or more option tags governing lookup fields ||  
|}
 
=====lookupFieldOptions Tag=====
:{| border="1" cellpadding="5" cellspacing="0"
! Name!!Type!!Required on Add!!Description!!Additional Information
|-
|-
| created_id || Lookup || align="center"|Read Only || || || [[REST API:User Resource|User]] ID
| lookupFieldOption || String || || valign="top"| Possible values
* MATCH_BY_LOOKUP_ID
* MATCH_BY_LOOKUP_RECORD_LOCATOR  
* ''field name''
| When a field name is specified, data in the CSV column is matched against that field in the Lookup target object.
 
|-
|-
| modified_id || Lookup || align="center"|Read Only || || || [[REST API:User Resource|User]] ID
| lookupColumnTitle || Attribute || || The name of the Lookup field in the platform object. ||  
 
|}
|}
{{Note|<br>When defining a profile mapping, these are the field names to use for the standard fields defined for custom objects:
:* <tt>row_id</tt> - Record Id
:* <tt>OWNER</tt> - Record owner's name
:* <tt>OWNER_ID</tt> - Record owner's [[User]] ID
}}


===Error Codes===
===Error Codes===
:{| border="1" cellpadding="5" cellspacing="0"
:{| border="1" cellpadding="5" cellspacing="0"
! Platform Code||with Http Status||Description
! Platform Code|| Error
|-
| align="center"| -52 || INVALID_MAPPING_PROFILE_NAME
|-
| align="center"| -53 || PLEASE_PROVIDE_ADVANCED_MAPPING_OPTIONS
|-
| align="center"| -54 || INVALID_DEFAULT_OWNER_ID_SELECTED
|-
| align="center"| -55 || INVALID_MERGE_OPTION_FOR_ACCOUNTS
|-
| align="center"| -56 || INVALID_PROPSECT_OWNER_ASSIGNMENT_OPTION
|-
| align="center"| -57 || FIELD_IN_MAPPED_COLUMNS_DOES_NOT_EXIST
|-
|-
| align="center"| -7000 || BAD_REQUEST (400) || Invalid index name
| align="center"| -58 || INVALID_CSV_COLUMN_NUMBER 
|}
|}



Latest revision as of 19:19, 25 April 2014

Manage import Mapping Profiles using the REST API.

Learn more:

Permissions

Lock-tiny.gif

Users that have the Use Development Features permission can use this resource. 

List Import Field-Mapping Profiles

Method
GET
URI
https://{{domain}}/networking/rest/import/mappingProfile/{objectName}
Response
<platform>
    <mappingProfile>
        <id>1351233928</id>
        <name>TestMap</name>
        <description/>
        <objectId>e8dc7a31353947729c2d1995e3185771</objectId>
        <date_created>2012-03-14T04:59:39.000Z</date_created>
        <date_modified>2012-03-14T20:51:37.000Z</date_modified>
        <modified_id 
           type="" uri="https://.." 
           displayValue="John Doe">1424089492</modified_id>
        <created_id          
           type="" 
           uri="https://localhost/networking/rest/USER/1424089492" 
           displayValue="John Doe">1424089492</created_id>
        <mapping>
            <energy csvColumnName="Energy (kWh)">2</lk>
            <numberField csvColumnName="Number">1</numberField>
        </mapping>
        <advancedOptions>
            <mergeOptions>MERGE_USING_PRIMARY_KEY</mergeOptions>
            <recordOwner          
               type="" uri="https://..." 
               displayValue="John Doe">1424089492</recordOwner>
            <lookupFieldOptions>
                <lookupFieldOption 
                    lookupColumnName="Lk">time_field</lookupFieldOption>
            </lookupFieldOptions>
        </advancedOptions>
    </mappingProfile>

    <mappingProfile>
        ...
    </mappingProfile>
     ...

    <message>
        <code>0</code>
        <description>Success</description>
    </message>
    <recordCount>N</recordCount>      <!-- Number of mappingProfiles returned -->
</platform>
See also: REST API:Error Codes

Get an Import Field Mapping Profile

Method
GET
URI
https://{{domain}}/networking/rest/import/mappingProfile/{objectName}/{mapping_profile_name}
Response
<platform>
    <mappingProfile>
        <id>1351233928</id>
        <name>TestMap</name>
        <description/>
        <objectId>e8dc7a31353947729c2d1995e3185771</objectId>
        <date_created>2012-03-14T04:59:39.000Z</date_created>
        <date_modified>2012-03-14T20:51:37.000Z</date_modified>
        <modified_id 
           type="" uri="https://..." 
           displayValue="John Doe">1424089492</modified_id>
        <created_id          
           type="" 
           uri="https://localhost/networking/rest/USER/1424089492" 
           displayValue="John Doe">1424089492</created_id>
        <mapping>
            <energy csvColumnName="Energy (kWh)">2</lk>
            <numberField csvColumnName="Number">1</numberField>
        </mapping>
        <advancedOptions>
            <mergeOptions>MERGE_USING_PRIMARY_KEY</mergeOptions>
            <recordOwner          
               type="" 
               uri="https://localhost/networking/rest/USER/1424089492" 
               displayValue="John Doe">1424089492</recordOwner>
            <lookupFieldOptions>
                <lookupFieldOption 
                    lookupColumnName="Lk">time_field</lookupFieldOption>
            </lookupFieldOptions>
        </advancedOptions>
    </mappingProfile>

    <message>
        <code>0</code>
        <description>Success</description>
    </message>
</platform>
See also: REST API:Error Codes

Add an Import Field-Mapping Profile

Method
POST
URI
https://{{domain}}/networking/rest/import/mappingProfile/{objectName}
Request
<platform>
    <mappingProfile>
        <name>TestMap</name>
        <description/>
        <mapping>
            <energy csvColumnName="Energy (kWh)">2</lk>
            <numberField csvColumnName="Number">1</numberField>
        </mapping>
        <advancedOptions>
            <mergeOptions>MERGE_USING_PRIMARY_KEY</mergeOptions>
            <recordOwner 
                type="" uri="https://..." 
                displayValue="Justin Thyme">764db24986</recordOwner>
            <lookupFieldOptions>
                <lookupFieldOption 
                    lookupColumnName="Lk">time_field</lookupFieldOption>
            </lookupFieldOptions>
        </advancedOptions>
    </mappingProfile>
</platform>
Response
<platform>
    <message>
        <code>0</code>
        <description>Success</description>
        <id>...</id>   <!-- ID of the newly created mappingProfile -->
    </message>
</platform>
See also: REST API:Error Codes

Update an Import Field-Mapping Profile

Method
PUT
URI
https://{{domain}}/networking/rest/import/mappingProfile/{objectName}/{mapping_profile_name}
Request
<platform>
    <mappingProfile>
        <name>TestMap</name>
        <description/>
        <mapping>
            <energy csvColumnName="Energy (kWh)">2</lk>
            <numberField csvColumnName="Number">1</numberField>
        </mapping>
        <advancedOptions>
            <mergeOptions>MERGE_USING_PRIMARY_KEY</mergeOptions>
            <recordOwner 
                type="" uri="https://..." 
                displayValue="Justin Thyme">764db24986</recordOwner>
            <lookupFieldOptions>
                <lookupFieldOption 
                    lookupColumnName="Lk">time_field</lookupFieldOption>
            </lookupFieldOptions>
        </advancedOptions>
    </mappingProfile>
</platform>
Response
<platform>
    <message>
        <code>0</code>
        <description>Success</description>
    </message>
</platform>
See also: REST API:Error Codes

Delete an Import Field Mapping Profile

Method
DELETE
URI
https://{{domain}}/networking/rest/import/mappingProfile/{objectName}/{mapping_profile_name}
Record ID of the mapping profile can also be specified.
Response
<platform>
    <message>
        <code>0</code>
        <description>Success</description>
    </message>
</platform>
See also: REST API:Error Codes

Fields

Note: Unless otherwise indicated, the attribute for a field is "Editable on Add or Update".
Name Type Attribute Required on Add/Update Description Additional Information
id String Read Only Record Id
name String Checkmark.gif Mapping profile name
description String
mapping Tag Checkmark.gif Describes the mapping betweeen the CSV columns and Platform fields.
advancedOptions Tag Checkmark.gif Defines additional mapping profile options
date_modified Date Read Only UTC Format
date_created Date Read Only UTC Format
created_id Lookup Read Only User ID
modified_id Lookup Read Only User ID

mapping Tag

Name Type Required on Add/Update Description Additional Information
platform field Number Checkmark.gif CSV column number The tag name is the name of an object field. The number is the CSV data column it maps to. The first column is column "zero". So <phone>1</phone> maps the second CSV column to the phone field.
csvColumnName Attribute Checkmark.gif CSV-column identifier The value of this attribute is displayed in the GUI to help a user map the intended columns.
Learn more: Data Import Wizard

advancedOptions Tag

Name Type Required on Add Description Additional Information
mergeOptions String Possible values:
  • DO_NOT_MERGE
  • MERGE_USING_PRIMARY_KEY
  • MERGE_USING_RECORD_ID
MERGE_USING_RECORD_ID works only if the record_id field is mapped.
recordOwner Lookup Default record owner A User ID.
Learn more: Data Ownership
lookupFieldOptions Tag One or more option tags governing lookup fields
lookupFieldOptions Tag
Name Type Required on Add Description Additional Information
lookupFieldOption String Possible values
  • MATCH_BY_LOOKUP_ID
  • MATCH_BY_LOOKUP_RECORD_LOCATOR
  • field name
When a field name is specified, data in the CSV column is matched against that field in the Lookup target object.
lookupColumnTitle Attribute The name of the Lookup field in the platform object.

Notepad.png

Note:
When defining a profile mapping, these are the field names to use for the standard fields defined for custom objects:

  • row_id - Record Id
  • OWNER - Record owner's name
  • OWNER_ID - Record owner's User ID

Error Codes

Platform Code Error
-52 INVALID_MAPPING_PROFILE_NAME
-53 PLEASE_PROVIDE_ADVANCED_MAPPING_OPTIONS
-54 INVALID_DEFAULT_OWNER_ID_SELECTED
-55 INVALID_MERGE_OPTION_FOR_ACCOUNTS
-56 INVALID_PROPSECT_OWNER_ASSIGNMENT_OPTION
-57 FIELD_IN_MAPPED_COLUMNS_DOES_NOT_EXIST
-58 INVALID_CSV_COLUMN_NUMBER

Learn more: