What APIs are needed to get publications from the SDL server?

I'm trying to determine the APIs needed to get publications from the SDL server. We would like to build our own UI, using the APIs, to find and select publications that have been published, and copy them to other servers so they can be released. This would be used instead of writers having to manually download each individual publication using Publication Manager, then manually copying that publication to the required servers. We are using Live Content Architect 2014.

  • Hi Dana,

    It is possible to download Publication Outputs using the API's. There are a number of steps you need to follow before you can get to your end result.

    • Authenticate using the Application25.login class:

    • Find the publication(s) from which you would like to download the output(s).This can be done by using the PublicationOutput25.Find webservice function.You can limit your results by supplying the appropriate metadatafilter xml structure (eg. specific language/language combinations | status equals 'Release Candidate' | specific outputformat instances | ...).

    See 

    This call will return an XMLObjectList  structure. From the returned xmlobjectlist structure (each ishobject element represents a publication output object), you should retrieve all publication output references (ishlngref attribute off the ishobject elements) you want to download

    • For each ishlngref you should execute following routine to actually download the content.
    • Using the PublicationOutput25.GetDataObjectInfoByIshLngRef function in order to retrieve all information regarding the actual content of the publication output
    • From the returned ishdataobject xml structure retrieve the following values: 
      • ed -> GUID of the actual content blob.
      • size -> number of bytes consumed by the content.

    See 

    Now that you know the EDT and Size, you are ready to retrieve the content from the repository:

    • Loop until full size of object is retrieved over following webservice function PublicationOutput25.GetNextDataObjectChunkByIshLngRef
      • plLngRef should be filled with the value of the ishlngref that you are currently processing.
      • psEdGUId should be filled with the value of ed.
      • plOffSet should start at 0 and be increased for each loop in order to retrieve the next chunk of content.
      • size should contain the chunk size that you want to retrieve. Advised chunk size is around 200KB. KEEP IN MIND to not request more bytes than available, otherwise empty bytes will be added at the end of the binary file, which might corrupt the actual downloaded file. So put in place some logic which will check whether the remaining number of bytes is still larger than the chunk size. If not, just download remaining number of bytes.
    • You have to glue these chunks together yourself, within your code.

    See