Deploying new versions of existing reports

CodeRookie
edited February 11, 2022 in Analytics #1

Good morning, all!

I believe I already know the answer to this question, but I was asked to submit to the users' forum to seek clarification.

The question:
When uploading a new version of an existing report, if you specify it to replace the old version, will it find all old versions on the system and replace, or just in the specific folder you're in at that moment?

I'm pretty sure the answer is only in the folder you are in at the moment of upload. Then I would need to go find all other instances of the report on the system.

The reason I ask this is we have users that copy report designs into their home folders so they don't have to go chase it down every time they want to use it. Saves them time, but creates headaches for me, when they come to me saying the report is spitting out the wrong data, and I find they're one or two versions behind.

Is there a way to have all instances of a report update at the same time when a new version is uploaded..... One can only hope.

Thanks in advance for any info!

Scott

Best Answer

  • Hi CodeRookie,

    I skimmed some samples we had and it looks like the relevant ones to this behavior are in the samples from the Integration Technology Information package:

    IDAPI High level overview:
    1.) IDAPI needs to login to the server using an authentication method similar to the one in the below samples.
    2.) IDAPI needs to find existing files with (See SelectFiles.java in the below sample. Use GetFileDetails() and look for getName() because the name includes the entire path).
    3.) IDAPI performs individual uploads per folder path found (See UploadFile.java in the below sample, modifications would be needed to specify to overwrite and use the existing permissions these are done with the newFile.XXXX).

    The upload sample is in the samples of the Integration Technology information. Here is the link:
    Windows: https://knowledge.opentext.com/knowledge/llisapi.dll/Open/61941619
    Linux: https://knowledge.opentext.com/knowledge/llisapi.dll/Open/61938893

    To get to the sample, navigate to the extracted location:
    IntegrationExtractedLocation\Web Services\Examples\Axis Client\Source

    Here is a link to the documentation:
    https://knowledge.opentext.com/knowledge/llisapi.dll/Open/61307325

    If you have a specific question regarding this API, please open a ticket with support at support@opentext.com.

    Warning No formatter is installed for the format ipb

Answers

  • Hi CodeRookie,

    When uploading a new version of an existing report, if you specify it to replace the old version, it will only look in the specified upload folder. It will not recursively check the entire folder structure for the folder (an operation that could become a very slow operation with a large enough number of files and folders).

    There is currently not an Out of the Box operation that will update all of the same reports to the new version. This could be accomplished with IDAPI. You could make a little upload application to specify the upload and then have the IDAPI check the entire iHub/iServer structure for the reports with the same name. Doing this would also allow you to exclude directories you use for backups and what not with a logical check. Is this something you'd be interested in developing (as it would be custom code)? We have some sample IDAPI snipits that could assist you in this custom code.

    Warning No formatter is installed for the format ipb
  • Jeffrey,

    Good afternoon, and thanks for the quick response! I would be interested in seeing the snipits, as this would be a very handy app to have. Would save me the headache of having to go through everyone's Home folder searching for designs.

    Best Regards,
    Scott

  • Hi CodeRookie,

    I skimmed some samples we had and it looks like the relevant ones to this behavior are in the samples from the Integration Technology Information package:

    IDAPI High level overview:
    1.) IDAPI needs to login to the server using an authentication method similar to the one in the below samples.
    2.) IDAPI needs to find existing files with (See SelectFiles.java in the below sample. Use GetFileDetails() and look for getName() because the name includes the entire path).
    3.) IDAPI performs individual uploads per folder path found (See UploadFile.java in the below sample, modifications would be needed to specify to overwrite and use the existing permissions these are done with the newFile.XXXX).

    The upload sample is in the samples of the Integration Technology information. Here is the link:
    Windows: https://knowledge.opentext.com/knowledge/llisapi.dll/Open/61941619
    Linux: https://knowledge.opentext.com/knowledge/llisapi.dll/Open/61938893

    To get to the sample, navigate to the extracted location:
    IntegrationExtractedLocation\Web Services\Examples\Axis Client\Source

    Here is a link to the documentation:
    https://knowledge.opentext.com/knowledge/llisapi.dll/Open/61307325

    If you have a specific question regarding this API, please open a ticket with support at support@opentext.com.

    Warning No formatter is installed for the format ipb
  • Jeffrey,
    Thanks so much for the help! I will take a look through the material, and see what I can come up with.

    Have a great afternoon!

    Scott

  • Jeffrey,
    Hello, again. For some reason, I'm not able to use the Windows link. I've tried both clicking on the link, and searching for that ID number in the Knowledge Base. It says the article either doesn't exist, or I don't have permission to access it.
    Had no problem downloading the PDF.

    Thanks,
    Scott

  • Hi CodeRookie,

    To get access to the links that show permission requirments, you'll need to contact support@opentext.com.

    Here are the snipits, but they probably need the full sample for good context. In fact, I would strongly recommend getting the full sample:
    UploadFile.java
    // default Upload settings
    String filename = "report/SampleReport.rox";
    String encyclopediaFileName;
    // set new file information
    com.actuate.schemas.NewFile newFile =
    new com.actuate.schemas.NewFile();
    newFile.setName(encyclopediaFileName);
    // set Upload message
    com.actuate.schemas.UploadFile request =
    new com.actuate.schemas.UploadFile();
    request.setNewFile(newFile);
    request.setContent(content);
    // call upload file
    com.actuate.schemas.UploadFileResponse response =
    actuateControl.uploadFile(request, attachmentPart);

    SelectFiles.java
    // Search based on file type
    com.actuate.schemas.FileCondition fileCondition =
    new com.actuate.schemas.FileCondition();
    fileCondition.setField(com.actuate.schemas.FileField.FileType);
    fileCondition.setMatch("R*");
    // This example demonstrate select with name
    String name = "/report/SampleReport.rox";
    actuateControl.selectFiles(null, name, null);

    // This example demonstrate select with name list
    com.actuate.schemas.ArrayOfString nameList =
    ActuateControl.newArrayOfString(
    new String[] {
    "/report/SampleReport.rox",
    "/output/SampleReport.roi" });
    actuateControl.selectFiles(null, null, nameList);

    Warning No formatter is installed for the format ipb
  • Jeffrey,
    Thanks for the update. I'll contact support to get access.

    Have a great day!
    Scott