How to store a specific non-zero default value in a linked field?

manishc97360515

01-03-2018

<srcSchema _cs="TestOMPRO4334 (mel)" created="2018-02-28 06:22:51.886Z" createdBy-id="0"

desc="For testing folder mapping issue" entitySchema="xtk:srcSchema" img="xtk:schema.png"

label="TestOMPRO4334" labelSingular="TestOMPRO4334" lastModified="2018-03-01 10:50:33.285Z"

mappingType="sql" md5="59A8BBF33E19ADCEA02AF85B6261C5EF" modifiedBy-id="0"

name="TestOMPRO4334" namespace="mel" xtkschema="xtk:srcSchema">

  <createdBy _cs=""/>

  <modifiedBy _cs=" "/>

  <element autopk="true" desc="For testing folder mapping issue" label="TestOMPRO4334"

labelSingular="TestOMPRO4334" name="TestOMPRO4334">

    <attribute label="First Name" name="firstName" type="string"/>

    <attribute label="Last Name" name="lastName" type="string"/>

    <attribute label="E-Mail" name="email" type="string"/>

    <attribute label="Phone Number" name="phoneNumber" type="string"/>

    <element default="DefaultFolder(‘nmsFolder)" label="Folder" name="folder" revDesc="TestOMPRO4334 included in this folder"

revIntegrity="define" revLabel="TestOMPRO4334s" target="xtk:folder"

type="link"/>

</element>

</srcSchema>

Hi, I am using the above-mentioned schema for some PoC purpose. I am trying to populate data in the above-mentioned schema through a workflow where the data is read from a CSV file and stored in the table corresponding to the above-schema. When a folder id (foreign key to xtk:folder) is provided, then, the system stores it correctly in the iFolderId field of the table, but, when no folder id is provided/chosen, then, 0 (i.e. zero) is stored as a folder ID. My requirement is to define a specific non-zero value as the folder ID. I tried different permutation and combination of  default="DefaultFolder(‘nmsFolder)"  attribute, but, it is not working. Please let me know how to store a non-zero default value in the folder field when folder id is not provided while importing a data set.

Accepted Solutions (1)

Accepted Solutions (1)

manishc97360515

02-03-2018

Solved it. What one has to do is to make changes in schema. Then, go to Tools --> Update Database Structure --> go to next until you find the generated SQL command. Over there the field id (which one wants to set as default to non-zero value) in the SQL query is set as zero. Change the value to your desired value and then, run the query. 

Answers (8)

Answers (8)

manishc97360515

02-03-2018

Hi Daniel, this is not working because as soon as I use an external join the resulting SQL is setting the default value of the folderID in the source table is set as 0. If there was a way to use the 'default' (attribute of <element> element) properly, then, it would have been solved.

manishc97360515

02-03-2018

Hi Daniel, this is not working because as soon as I use an external join the resulting SQL is setting the default value of the folderID in the source table as 0. If there was a way to use the 'default' (attribute of <element> element) properly, then, it would have been solved.

manishc97360515

01-03-2018

Hi Adhiyan, thanks for your reply, but, unfortunately 'sqlDefault' cannot be used with a linked <element>. I tried this and the system is throwing error while saving the schema. Please let me know how to a achieve it using the "default" attribute.

daniell35335226

01-03-2018

Hi Manish,

Could you not do something similiar to this:

    <attribute default="DE" advanced="true" label="Country Code" length="2" name="countryCode"

               notNull="true" required="true" type="string"/>

<element externalJoin="true" label="Country" name="mySchema-country" revIntegrity="normal"

             revLabel="MY Schema" revLink="country-mySchema" target="nms:country"

             type="link">

      <join xpath-dst="@isoA2" xpath-src="@countryCode"/>

    </element>

You have the foreign key folder id inside the table but hidden from immediate view, and you default the value going in?

Dan