Quantcast
Channel: SCN : Document List - Scripting Languages
Viewing all articles
Browse latest Browse all 100

How to Build an HTA/HTML UI to Code and Execute ABAP Reports

$
0
0

Hello community,

 

a longer time ago I introduced CCo (COM Connector) here. Later I presented here the possibility how to program and run an ABAP Report with the scripting language VBScript and CCo. Here is now a development with the same possibility and additional an UI to code the ABAP report. It is a hypertext application.

 

<html>  <head>    <title>      Execute an ABAP Report    </title>    <hta:application applicationname="ABAPReport" id="ABAPReport"      singleinstance="yes" border="thick" borderStyle="sunken"       version="1.0" />    <script language="VBScript">      '-Directives------------------------------------------------------        Option Explicit      '-Constants-------------------------------------------------------        Const RFC_OK = 0      '-ABAPExec--------------------------------------------------------        Sub ABAPExec()          '-Variables---------------------------------------------------            Dim SAP, hRFC, rc, hFuncDesc, hFunc, ABAP, i, hRow, hTable            Dim RowCount, charBuffer, Result          document.Output.Result.value = ""          Set SAP = CreateObject("COMNWRFC")          If Not IsObject(SAP) Then            Exit Sub          End If          hRFC = SAP.RfcOpenConnection( _            "ASHOST=" & document.ConnParams.ASHost.value & ", "  & _            "SYSNR=" & document.ConnParams.SysNr.value & ", " & _            "CLIENT=" & document.ConnParams.Client.value & ", " & _            "USER=" & document.ConnParams.User.value)          If hRFC = 0 Then            Set SAP = Nothing            Exit Sub          End If          hFuncDesc = SAP.RfcGetFunctionDesc(hRFC, _            "RFC_ABAP_INSTALL_AND_RUN")          If hFuncDesc = 0 Then            rc = SAP.RfcCloseConnection(hRFC)            Set SAP = Nothing            Exit Sub          End If          hFunc = SAP.RfcCreateFunction(hFuncDesc)          If hFunc = 0 Then            rc = SAP.RfcCloseConnection(hRFC)            Set SAP = Nothing            Exit Sub          End If          '-Writes the report into the PROGRAM table--------------------            If SAP.RfcGetTable(hFunc, "PROGRAM", hTable) = RFC_OK Then              ABAP = Split(document.ABAP.Report.value, vbCrLf)              For i = 0 To UBound(ABAP) - 1                If Trim(ABAP(i)) <> "" Then                  hRow = SAP.RfcAppendNewRow(hTable)                  rc = SAP.RfcSetChars(hRow, "LINE", ABAP(i))                End If              Next            End If          If SAP.RfcInvoke(hRFC, hFunc) = RFC_OK Then            '-Gets the result from the WRITES table---------------------              If SAP.RfcGetTable(hFunc, "WRITES", hTable) = RFC_OK Then                rc = SAP.RfcGetRowCount(hTable, RowCount)                rc = SAP.RfcMoveToFirstRow(hTable)                For i = 1 To RowCount                  hRow = SAP.RfcGetCurrentRow(hTable)                  rc = SAP.RfcGetChars(hRow, "ZEILE", charBuffer, 256)                  Result = Result & Trim(charBuffer) & vbCrLf                  If i < RowCount Then                    rc = SAP.RfcMoveToNextRow(hTable)                  End If                Next                '-Shows the result in the output area-------------------                  document.Output.Result.value = Result              End If          End If          rc = SAP.RfcDestroyFunction(hFunc)          rc = SAP.RfcCloseConnection(hRFC)          Set SAP = Nothing        End Sub              '-onLoad----------------------------------------------------------        Sub Window_onLoad()          window.moveTo 25,25          window.resizeTo 680,710        End Sub      </script>  </head>  <body>    <h1>      Execute an ABAP Report    </h1>    <form action="ConnParams.htm" name="ConnParams">      <p>        ASHost:         <input name="ASHost" type="text" size="10" maxlength="10"          value="ABAP">         SysNr.:         <input name="SysNr" type="text" size="2" maxlength="2"          value="00">         Client:         <input name="Client" type="text" size="3" maxlength="3"          value="001">         User:         <input name="User" type="text" size="12" maxlength="12"          value="BCUSER">      </p>    </form>    <input type="button" value="Execute ABAP Report"      onClick='ABAPExec()'>        <form action="ABAP.htm" name="ABAP">      <p><textarea name="Report" cols="72" rows="18" wrap="hard">
"-Begin-----------------------------------------------------------------  Report zTest Line-Size 72.  Write: 'Hello World from'.  Write: sy-sysid.
"-End-------------------------------------------------------------------</textarea>      </p>    </form>    <form action="Output.htm" name="Output">      <p>        <textarea name="Result" cols="72" rows="9" wrap="soft" readonly>      </textarea>      </p>    </form>  </body> </html>

 

ABAP1.jpg

As you can see it is very easy to build an external editor for ABAP reports, with the possibilities of HTML and CCo.

 

Cheers

Stefan


Viewing all articles
Browse latest Browse all 100

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>