Expand my Community achievements bar.

SOLVED

An issue with creating backup packages

Avatar

Level 2

Hi,

I'm trying to set the backup workflows up using the following document:
https://docs.campaign.adobe.com/doc/AC/en/technicalResources/Technotes/AdobeCampaign_How_to_export_p...

https://docs.campaign.adobe.com/doc/AC/en/technicalResources/Technotes/AdobeCampaign_How_to_export_p...

However, I have stuck on the step when I have to generate the packages from specification. First, I determined the query:

var query = xtk.queryDef.create(

  <queryDef operation="select" schema="nms:delivery">

    <select>

      <node expr="@label"/>

      <node expr="@internalName"/>

    </select>

    <where>

      <condition boolOperator="OR" expr="@id != 0"/>

    </where>

  </queryDef>

)

var res = query.ExecuteQuery()

Then, I initialize the empty array and push all @label nodes there. Ultimately I want to include all attributes in the package but as for now it would be good to start from small steps.

Finally, I try to generate package:

var specFile = xtk.specFile.create(deliveryArray)

var package = specFile.GenerateDoc()

But I get the error message that says:

'JavaScript: cannot convert the value to an XML document.

Function 'create', arugment 0: cannot convert argument to an XML document.'

I also tried a different approach with assigning package specification to a variable and then passing it to specfile.create method but the output was the same.

Thanks in advance for any advices.

Best regards,

Dominik

1 Accepted Solution

Avatar

Correct answer by
Level 10

Hi Dominik,

You are not following the instruction correctly.

  • create a package definition in your instance.
  • Add required content to this package definition in your instance.
  • write the required query as mentioned in the document to get the list of package from package definition i.e. from the specFile schema.

var query = xtk.queryDef.create(

<queryDef schema="xtk:specFile" operation="select">

<select>

<node expr="@name"/>

<node expr="@namespace"/>

<node expr="data"/>

</select>;

</queryDef>

)

var specFileXML = query.ExecuteQuery()

  • add a condition in this query to select required packages.
  • Use below script to generate xml docs to export the package.

var specFile = xtk.specFile.create(specfileXml)

var package = specFile.GenerateDoc()

  • The package XML needs to be saved to a file.
  • The file must have the <?xml> header.
  • The saveXmlFile function writes the contents to a file in XML format.

var fileName = "/tmp/myPackage.xml"

saveXmlFile(package, fileName)

Regards,

Amit

View solution in original post

4 Replies

Avatar

Correct answer by
Level 10

Hi Dominik,

You are not following the instruction correctly.

  • create a package definition in your instance.
  • Add required content to this package definition in your instance.
  • write the required query as mentioned in the document to get the list of package from package definition i.e. from the specFile schema.

var query = xtk.queryDef.create(

<queryDef schema="xtk:specFile" operation="select">

<select>

<node expr="@name"/>

<node expr="@namespace"/>

<node expr="data"/>

</select>;

</queryDef>

)

var specFileXML = query.ExecuteQuery()

  • add a condition in this query to select required packages.
  • Use below script to generate xml docs to export the package.

var specFile = xtk.specFile.create(specfileXml)

var package = specFile.GenerateDoc()

  • The package XML needs to be saved to a file.
  • The file must have the <?xml> header.
  • The saveXmlFile function writes the contents to a file in XML format.

var fileName = "/tmp/myPackage.xml"

saveXmlFile(package, fileName)

Regards,

Amit

Avatar

Level 2

Hi Amit,

Thanks for the listing all steps, the process is clear for me now!

Best regards,

Dominik

Avatar

Level 3

HI Amit

I have a question on this; where can i access the saved file; what would be the path? I'd like to download and ftp that.