Welcome Serena Central users! CLICK HERE
The migration of the Serena Central community is currently underway. Be sure to read THIS MESSAGE to get your new login set up to access your account.
Former Member Absent Member.
Absent Member.
203 views

[archive] Fax from ACUCOBOL-GT using Windows Fax services

[Migrated content. Thread originally posted on 30 June 2009]

My colleague Claudio has created this nice little example on how to send fax from ACUCOBOL-GT using the Windows Fax Services.
Thought we should share it with you, as I seem to remember there were an inquiry for this some time ago.

To run this, you have to generate the fxcomdef.def using AxDefGen.exe.
You also need to provide the document to fax.


       IDENTIFICATION DIVISION.
       PROGRAM-ID. fax-from-cobol.
       ENVIRONMENT DIVISION.
       CONFIGURATION                SECTION.
       SPECIAL-NAMES.
           COPY    "fxscomex.def".
                   .
       DATA        DIVISION.
       WORKING-STORAGE              SECTION.
       01 ERROR-INFO.
          03  ERROR-INFO-RESULT    USAGE UNSIGNED-INT.
          03  ERROR-INFO-FACILITY  USAGE UNSIGNED-SHORT.
          03  ERROR-INFO-CODE      USAGE UNSIGNED-SHORT.
       01 ERROR-SOURCE               PIC X(50).
       01 ERROR-DESCRIPTION          PIC X(200).
       01 ERROR-HELP-FILE            PIC X(50).
       01 ERROR-HELP-CONTEXT         USAGE UNSIGNED-LONG.

       77  hdlFax                   HANDLE OF FaxServer.
       77  hdlFaxDoc                HANDLE OF FaxDocument.
       77  JobID                    PIC S9(9) COMP-5.

       77  ws-cover-path            PIC x(50) VALUE
                    "C:\mycover.cov".
       77  ws-doc-path               PIC x(50) VALUE
                    "C:\myfaxdocument.rtf".

       PROCEDURE DIVISION.
       DECLARATIVES.
      *COM-ERROR SECTION.
      *     USE AFTER STANDARD EXCEPTION ON OBJECT.
      *     CONTINUE.
       OBJECT-EXCEPTION SECTION.
           USE AFTER EXCEPTION ON OBJECT.
       OBJECT-EXCEPTION-HANDLER.
           CALL    "C$EXCEPINFO"    USING
                   ERROR-INFO
                   ERROR-SOURCE
                   ERROR-DESCRIPTION
                   ERROR-HELP-FILE
                   ERROR-HELP-CONTEXT.
           IF ERROR-INFO-RESULT NOT = 2147614725
              DISPLAY MESSAGE BOX "Uknown error"
              GOBACK
           ELSE
              INITIALIZE ERROR-INFO-RESULT
              | This is an error we have no explanation of, the
              | fax goes just fine, so we just ignore this error.
           END-IF
       END DECLARATIVES.   
       Main.

      * To have further info:
      * [URL]http://msdn.microsoft.com/en-us/library/ms685958(VS.85).aspx[/URL]
      * [URL]http://sandlerco.com/VBScript.htm[/URL]

           CREATE  FaxServer        OF FAXCOMEXLib
                   HANDLE           IN hdlFax.   

           MODIFY  hdlFax           @connect = "".     

           CREATE  FaxDocument      OF FAXCOMEXLib
                   HANDLE           IN hdlFaxDoc.   

      * Optionally, set the sender properties.                         
      *    MODIFY  hdlFaxDoc        @Sender::Name = "".
      *    MODIFY  hdlFaxDoc        @Sender::Email = "".                         
      *    MODIFY  hdlFaxDoc        @Sender::FaxNumber = "".

      * Cover page's subject field
           MODIFY  hdlFaxDoc        @Subject =
                                      "Fax from ACUCOBOL-GT".
      * Document's friendly name           
           MODIFY  hdlFaxDoc        @DocumentName =
                                     "Test of Fax functionality".

      * Add recipient's fax number. If this string contains a canonical fax number
      * (starting with plus + followed by country code, area code in round brackets and the fax number),
      * the Fax Service will translate that number into dialable format in accordance with your current location.
      * Otherwise, make sure the international prefix or long distance prefix is specified when needed,
      * as the fax number will be passed on to a fax driver (Fax Service Provider) unchanged.
      * For example, sending a fax from San Francisco to Sydney's fax number 123456, the canonical address
      * +61(2)123456 will be translated into dialable address 011612123456.
      * If you are using T37FSP in conjunction with Internet Fax Service, specify absolute address
      * 612123456 (without leading plus, to avoid translation into dialable format),
      * as Internet Fax Service expects the number in the absolute format.
           MODIFY  hdlFaxDoc        @Recipients::Add ("00523623155").



      * The CoverPage property is a null-terminated string that contains the name
      * of the cover page template file (.cov) to associate with the fax document.
      * This .cov file has to be associated with an application that is installed on the computer,
      * and the application has to support the PrintTo verb; otherwise, the fax will fail.
      * To specify a server-based cover page file, you must set the FaxDocument.CoverPageType property to 2.
      * To specify a local or personal cover page file, you must set the FaxDocument.CoverPageType property to 1.
      *    MODIFY  hdlFaxDoc        @CoverPageType = 1
      *    MODIFY  hdlFaxDoc        @CoverPage = ws-cover-path.

      * The Note property is a null-terminated string that contains the contents
      * of the note field on the cover page of the fax.   
      *    MODIFY  hdlFaxDoc        @Note =
      *                      "For the kind attention of Sales Office". 


      * The Body property provides the path to the file that comprises the body of a fax.
      * The body of a fax consists of the fax pages other than the cover page.   
      * Examples of documents that you can send as a fax body are a text file (.txt),
      * a Microsoft Word document (.doc), or a Microsoft Excel spreadsheet (.xls).
      * When you send a fax from a client computer, the body has to be associated
      * with an application that is installed on that computer, and the application
      * has to support the PrintTo verb; otherwise, the fax will fail.                         
           MODIFY  hdlFaxDoc        @BODY = ws-doc-path.



      * Submit the document to the connected fax server and get back the job ID.
           MODIFY  hdlFaxDoc        @ConnectedSubmit(hdlFax)
                   GIVING           JobID     

           DESTROY hdlFax.
           DESTROY hdlFaxDoc.

           ACCEPT  OMITTED.

           stop run.
0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.