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. |