FLEXNET OPERATIONS SOAP WEB SERVICES GUIDE

FlexNet Operations Web Services Guide

ESDService Web Service

Description

Electronic Software Delivery Service (ESD Service) provides interfaces for accessing information related to the Software Delivery Module.

Introduction

Simple Workflow Using ESD Service APIs

  1. Get the list of accounts that the logged-in user belongs to, that have entitlements, and let the user select an account.

    • Use getEntitledOrganizations API

  2. Display all manufacturers that are on the entitlements for the selected account, and Product Lines, and allow the user to select.

    • Use getManufacturerProductLine API

  3. Display all Download Packages that belong to the selected product line, and allow the user to select a Download Package.

    • Use getDownloadPackages API

  4. Get the compliance information and EULA for the selected Download Package.

    • Use getEULA, acceptEULA APIs

    • Use getComplianceAgreement, acceptComplianceAgreement APIs

  5. If the user is compliant, and has accepted the EULA, then display the files required for that Download Package.

    • Use getDownloadableFiles API

    • If the request for files specifies that EULA acceptance, and compliance, are required then getDownloadableFiles will return an error, EULAIsNotAcceptedError, and the user should be prompted with an appropriate message. For more information, see EULAIsNotAcceptedError under getDownloadableFiles and getFilesByDownloadPackages.

Considerations

The getDownloadableFiles and getFilesByDownloadPackages APIs throw a EULAIsNotAcceptedError if the user does not accept the EULA. Each EULA is for a single package, and therefore the error will be thrown per package.

This can be handled as follows:

  1. Catch the exception EULAIsNotAcceptedError_Exception and handle it by adding the logic to get the EULA content using the getEULA API.

  2. Once the content is retrieved, call the acceptEULA API to accept the EULA.

  3. After the EULA is accepted, the package will be retrieved correctly.

You should modify your implementation to request one package at a time, catch the exception, and call for EULA acceptance for each package until all the packages have been accepted.

How to Get an Authentication Token

To get an authentication token,

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:v1.webservices.platform.flexnet.com">
    <soapenv:Header>
                 <UserId>FNO ALM User ID</UserId>
                  <UserPassword>FNO ALM Password in Base64 format</UserPassword>
             </soapenv:Header>
    <soapenv:Body>
       <urn:secureTokenRequest>
          <urn:userId>FNO ALM User ID</urn:userId>
          <!{}Optional:{}>
          <urn:tokenTimeoutSeconds>200</urn:tokenTimeoutSeconds>
       </urn:secureTokenRequest>
    </soapenv:Body>
 </soapenv:Envelope>
Note: The tokenTimeoutSeconds can be any number of seconds, but it defaults to 300 seconds (5 minutes).

How to Include the Token Generated in ESD Service

To include the token generated in ESD service,

 <soapenv:Header>
   <nsAuth:authnHeader>
     <nsAuth:id>FNO ALM User ID</nsAuth:id>
     <nsAuth:token>Token generated using FlexAuthService</nsAuth:token>
      <nsAuth:partnerCode>Tenant Id</nsAuth:partnerCode>
       </nsAuth:authnHeader>
 </soapenv:Header>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
            xmlns:esd="http://esdservice.esd.flexerasoftware.com"
            xmlns:nsAuth="http:/common.handler.flexerasoftware.com/authn">
            <soapenv:Header>
                <nsAuth:authnHeader>
                 <nsAuth:id>user@flexerasoftware.com</nsAuth:id>
                 <nsAuth:token>sTc2PAj5VOrer5WlGP39N9GBpCqJulmIrVrNof-Ciq1FdDYp_TeZlpbFwfFJC3BcZ9MO6nkDXvUvWGmi5IGr2sGp8-vS6L1FqMxeYhnGF5Skv_OmVoNMqlP6uE9rQY7FTHonX80hFbQ</nsAuth:token>
                <nsAuth:partnerCode>se02</nsAuth:partnerCode>
                </nsAuth:authnHeader>
            </soapenv:Header>  
   <soapenv:Body>
      <esd:getEULARequest>
         <esd:DownloadPackageReference>
            <!{}Optional:{}>
            <esd:Id>23232</esd:Id>
            <esd:SystemId>2323</esd:SystemId>
         </esd:DownloadPackageReference>
         <esd:OrganizationId>232323</esd:OrganizationId>
      </esd:getEULARequest>
   </soapenv:Body>
</soapenv:Envelope>