Inhalt


 

Der Bericht "Ablaufende Angebote" zeigt für die auswählten Kunden die offenen Angebote, sortiert nach Ablaufdatum.

Datenbeschaffung

Wir lesen die offenen Angebote mit dem SAP Standard-Funktionsbaustein "SD_SELECT_SALES_DOCUMENTS" . Da der Baustein nicht RFC-fähig ist, verwenden wir die CIS ABAP Schnittstelle und dann dort den
Call Function 'SD_SELECT_SALES_DOCUMENTS'. Die Sortierung absteigend nach Datum führen wir ebenfalls in der ABAP-Routine durch.
 
VB.net
 ' Report Time (Open offers by expiring date)
    Public Function CreateReportTime_
       (ByVal keys As Dictionary(Of String, String), _
        ByVal id As String, _
        ByVal customernumbers() As String, _
        ByVal customernames() As String) As String


        ' We use CIS addon ABAP function to read expiring offers

        ' Clear input/output
        rfc_input.Clear()
        rfc_output.Clear()


        ' Build up input
        Dim s As addonsimplestring = _
                 DirectCast(rfc_input.AddNew(), addonsimplestring)
        s.content = GetItem(keys, "VKORG")

        s = DirectCast(rfc_input.AddNew(), addonsimplestring)
        s.content = GetItem(keys, "VTWEG")

        s = DirectCast(rfc_input.AddNew(), addonsimplestring)
        s.content = GetItem(keys, "SPART")

        ' following parameters: customer numbers
        For Each cn As String In customernumbers
            s = DirectCast(rfc_input.AddNew(), addonsimplestring)
            s.content = cn
        Next

        ' Request data
        ic.RfcRequest("CISADDON.OPEN_OFFERS", "S", rfc_input, rfc_output)



In der ABAP-Routine OPEN_OFFERS erhalten wir die Organisationsschlüssel VKORG, VTWEG, SPART und anschließend alle selektierten Kundennummern. Daraus bauen wir die Parameter für den Funktionsbaustein auf:
 

ABAP
form OPEN_OFFERS tables reqparm resparm 
                         changing   rc type c   msg type c.


  data: wa(8000).
  data: datbi1 type D,
        datbi2 type D.


  data: CUSTOMERRANGE like BAPI_RANGESKUNNR occurs 1 with header line.
  data: VKORGRANGE    like BAPI_RANGESVKORG occurs 1 with header line.
  data: VTWEGRANGE    like BAPI_RANGESVTWEG occurs 1 with header line.
  data: SPARTRANGE    like BAPI_RANGESSPART occurs 1 with header line.

  data: POSITIONS like SVBMTV_TRVOG occurs 1.


  Read Table reqparm index 1 into vkorgrange-low.
  vkorgrange-sign = 'I'.
  vkorgrange-option = 'EQ'.
  Append vkorgrange.

  Read Table reqparm index 2 into vtwegrange-low.
  vtwegrange-sign = 'I'.
  vtwegrange-option = 'EQ'.
  Append vtwegrange.

  Read Table reqparm index 3 into spartrange-low.
  spartrange-sign = 'I'.
  spartrange-option = 'EQ'.
  Append spartrange.

* Customer numbers
  CUSTOMERRANGE-SIGN = 'I'.
  CUSTOMERRANGE-OPTION = 'EQ'.

  Data: k type i value 4.
  Read Table reqparm index k into CUSTOMERRANGE-LOW.
  While sy-subrc EQ 0.
    Append CUSTOMERRANGE.

    k = k + 1.
    Read Table reqparm index k into CUSTOMERRANGE-LOW.
  Endwhile.

* no customers?
  if   CUSTOMERRANGE[] is initial.
    exit.
  endif.



  CALL FUNCTION 'SD_SELECT_SALES_DOCUMENTS'
    EXPORTING
      IV_TRVOG      = '2'
      IV_VBOFF      = 'X'
      IV_VBALL      = ' '
    TABLES
      I_KUNNR1_RT   = CUSTOMERRANGE
      I_VKORG_RT    = VKORGRANGE
      I_VTWEG_RT    = VTWEGRANGE
      I_SPART_RT    = SPARTRANGE
      T_VBMTV       = POSITIONS
    EXCEPTIONS
      Error_message = 1
      OTHERS        = 2.

  Field-Symbols: <pos> like line of POSITIONS.

  Sort POSITIONS by DATBI ascending.

Bitte schauen Sie für die weiteren Details direkt in den mit CIS mobile ausgelieferten ABAP-Funktionsbaustein /GUIXT/CISADDON_INTERFACE.
 

Layout

Die Ausgabetabelle bauen wir in VB.NET als HTML-String auf, wobei über CSS die Angaben für Fonts, Abmessungen, Farben etc. gesetzt werden. Das Coding ist analog dem Beispiel Umsätze.
Zusatzparameter

Keine Zusatzparameter.