5 Replies Latest reply: Aug 31, 2014 12:08 PM by Jim Lester RSS

    Rolling your own transactional report to replace operatorClient.jar

    markg454 Community Member

      I've recently been told by our ACS vendor that since we have now switched to their certificates (and not using Adobe's certs), we can no longer use the operatorClient.jar to generate transaction reports.

       

      Therefore, I have to roll my own transaction reports from the adept database. I'm looking for an overview of the adept database.

       

      Specifically, when a book is fulfilled, what tables get entries?

       

      When a book is re-downloaded, what data is updated?

       

      BTW, I have the adept schema in my Mysql Workbench EER diagram viewer.

       

      Thanks in advance,

       

      Mark Gaither

      LibreDigital Inc.

        • 1. Re: Rolling your own transactional report to replace operatorClient.jar
          Jim Lester Community Member

          First, I remember putting the DB Schema in the TechRef, but that may be out of date so you are probably right to view the schema actually in your database.


          (Warning this is all from memory)

          My recollection is that the transaction table is what you want to look at. 

          The transactionId will get you a link back to the person who purchased this (assuming you maintained that when you generated the .acsm file/URLLink url)

          The adobeId guid will also give a good but not foolproof singe person identifier

          The resource id will tell you which piece of content (foreign key to ?resourceItem? table)

          and there should be a timestamp for original purchase.

           

          The table should get you equivalent numbers to the transaction reports.



          • 2. Re: Rolling your own transactional report to replace operatorClient.jar
            markg454 Community Member

            Jim:

             

            Thanks for the response.

             

            1) I did not find a 'transaction' table in my 4.2 schema. I have the following tables:

             

            distributionrights

            distributor

            disttransfer

            distuserdnonce

            fulfillment

            fulfillmentitem

            license

            licensecertificate

            resourceitem

            resourcekey

            schemaversion

            secondaryresource

            userpublic

            userusednonce

             

            2) We do not run a book store so no purchase data is known no retained. We are a third party provider for DRM ebooks. Therefore, all I have is the fulfillment's user id.

             

            3) Our business model is to monthly provide a billing invoice to each distributor for complete fulfillments. We do not charge for partial or re-fulfillments. This was done with the operatorClient.jar application from Adobe. But since we know use a Blue Fire set of certs, that application is no longer valid.

             

            4) I've reached out to cosupport@adobe.com for more help.

            • 3. Re: Rolling your own transactional report to replace operatorClient.jar
              Jim Lester Community Member

              Fulfillment is the transaction table I was thinking of.  I don't know the columns name, but if my memory isn't completely shot, the transaction id, operator id, and timestamp should be in the table.  I don't remember  however if there is a fulfillment row created for every download, or just the first.  If it is every time, then you will need to start/join with the license table which should have one entry per purchase, instead of download.

              (if you want to take this out of the forums, pm me, and I'll give you my email address)

               

              Also,  given what you said, I'm assuming you have already done talked to them to try to get the transaction reports, you may also want to consider reaching out to Bluefire again - with the question the way you phrased it here:

              'Since I can't get to the transaction report, what's the best way to get the information I need from my ACS4 database.'


              Sometimes asking the question differently will get better results, and I've long been a fan at the people at Bluefire, so I'd be surprised if they didn't try to help you.


              Good Luck.

              • 4. Re: Rolling your own transactional report to replace operatorClient.jar
                markg454 Community Member

                BF has been very responsive. It puzzled me that they had not had other customers asking for this same functionality.

                 

                As result, I built a reporting Web App that is a deployable WAR file into the ACS tomcat app server. The servlet uses SQL queries against the adept database that provided the same information.

                • 5. Re: Rolling your own transactional report to replace operatorClient.jar
                  Jim Lester Community Member

                  Glad to hear that you got a working solution.