36
1 SAP BC-CON SAPconnect - The Interface in the R/3 System for E-Mail/Fax Systems Version 01.02.B R/3 4.5A 17 Feb 1999

Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

1

SAP BC-CON

SAPconnect - The Interface in the R/3 System for E-Mail/Fax Systems

Version 01.02.B

R/3 4.5A

17 Feb 1999

Page 2: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

2

Changes to SAP BC-CON SAPconnect documentation V 01.01.C:

1) New address type 'PAG' for Paging (see page 15)

2) Minor general changes to administrative part (CSP/ICC)

CONTENTS

1 Introduction............................................................................................................................................... 3

2 The RFC Interface..................................................................................................................................... 5

2.1 RFC SDK ............................................................................................................................................... 5

2.2. Using RFC in SAPconnect ............................................................................................................... 7

2.3 Implementation Procedure ..........................................................................................................10

3 SAPconnect - RFC Functions in Overview ........................................................................................10

3.1 Status Transfer Process ...................................................................................................................12

3.2 Object Data.....................................................................................................................................13

3.3 List of Receivers................................................................................................................................15

4 RFC Description ......................................................................................................................................17

4.1 SX_OBJECT_RECEIVE.......................................................................................................................17

4.2 SX_OBJECT_STATUS_RECEIVE.........................................................................................................28

A. Appendix

A.1. Status Code List

Page 3: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

3

1 Introduction

Standard Communication Channel

SAPconnect has been developed as a successor for SAPcomm with the aim ofproviding a standard communication channel for all communication systems,including integration with the SAP Internet Mail Gateway and a connectionbetween different R/3 Systems.Using RFC technology, SAPconnect allows you to access many othercommunication systems (e.g. fax servers, X.400 MTA, Internet mail nodes, etc.)directly from R/3.

The interface is certifiable for Fax (BC-CON Fax and Email - SAPconnect) sinceR/3 3.1G and for Paging (BC-PAG Paging) starting with R/3 4.5A.. Moreinformation about the certification process can be found on SAP web pageshttp://www.sap.com/csp . Interface documentation are stored athttp://www.sap.com/csp/scenarios .

Object

Any messaging object can be sent from or received by the R/3 System. Objectscan be e.g. in the form of an Internet mail or an SAPoffice mail sent to one ormore users or they can be for use by a certain program. Objects are structuredin the same way as SAPoffice documents; i.e. they contain a document (socalled “main document”) with one, several or no attachments. The data in anobject can be in different formats (e.g. TIFF, ASCII, PostScript, PDF etc.)according to which formats are supported by the external communicationsystem and R/3. One of the most important aims of SAPconnect is to monitor theconversion of formats for objects which are to be sent from the R/3 System.

Connection to Communication Interfaces

SAPconnect allows R/3 to be connected directly to mail or communicationsystems via its API (RFC interface).

Scheduling

Additional SAPconnect functions can be identified under the key words‘Scheduling’ and ‘Routing’. Scheduling includes the forwarding of objects to thecommunication nodes according to certain time criteria and also allows anobject to be resent if necessary.

Routing

SAPconnect includes an outbound routing function which enables messages tobe routed via various communication systems to ensure an improvement in loaddistribution and a reduction in costs.

SAPconnect does not support a store-and-forward function between several R/3Systems in a system group. Each client of each R/3 System must be connectedindividually to the appropriate communication nodes and vice versa.

Page 4: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

4

Address format

The SAPconnect RFC interface supports all address formats supported by R/3:SMTP, X.400, Fax, Paging, and SAPoffice (R/3-to-R/3 mail).

More details can be found in the description of function moduleSX_OBJECT_RECEIVE (transaction SE37, Goto -> Documentation -> Functionmodule doc.(F9)).

Page 5: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

5

2 The RFC Interface

The SAPconnect API interface uses the standard R/3 RFC (Remote Function Call) technologywhich is also used by many other interfaces within the R/3 System itself (e.g. BAPI).

This chapter describes the data and data transfer. (A general description of RFC can be found inthe online documentation under BC-Basic Components, Basis Services/Communication Interfaceentitled "Remote Communications" (BC-SRV-RC) in the chapters ‘The RFC API' and 'RFCProgramming in ABAP/4’.)

This chapter includes an illustration of the process of calling the RFC interface for SAPconnectand which infrastructure should be available. Finally, you will learn how to use the SAPconnectinterface itself.

2.1 RFC SDK

Before using the SAPconnect RFC interface, at least the R/3 Software development kit (SDK) onthe R/3 Presentation CD is required and, in later stages, an R/3 System for testing.With the aid of the “Complementary Software Program” provided by SAP for this purpose, theirpartners can receive:

• CSP Developer Package (SDK/Remote)includes Software Development Kit updates for new SAP Releases and remote access to testand preview systems.

• An R/3 Test&Demo License after successful certification, or

• A complete R/3 System

You can find more information and the names of contact persons on the World Wide Web underhttp://www.sap.com/csp or by searching for “Complementary Software Program” from SAP’sWWW homepage. The most important documents are those entitled “Questions and Answers”,“Contacts” and “Partner Types”.

The CSP Developer Package comprises the RFC SDK with DLLs, libraries and header files for alloperating system platforms supported by R/3. This allows you to include the RFC interface in yourown programs. The CD also contains the SAP Gateway installation possibility. A standalone SAPGateway is required for loopback tests without any R/3 System.The description of these components can be found in the following R/3 online documentationwhich is included in the CSP Developer Package.

1. R/3 online documentation about RFC:R/3 Library > BC - Basis Components > Basis Services / Communication Interfaces (BC-SRV) >Remote Communications (BC-SRV-RC) > Remote Communications > The RFC API,alternatively as WinHelp file in the desktop SDK help subdirectory after installation from CD.

2. R/3 online documentation about the SAP Gateway:R/3 Library > BC - Basis Components > Basis Services / Communication Interfaces (BC-SRV) >BC - SAP Communication - Configuration,alternatively as README file on Presentation CD.

3. SAP Technical Developers Conference in May 1996 (CD):X:\DESKTOP\RFC_API.PDF - this is internal documentation about RFC.

4. SAP Partner Academy offers BAPI - Overview course TACA90 (check web page:http://www.sap.com/csp -> Services for Partners).

Page 6: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

6

5. SAP Partner Academy offers SAPconnect Customizing course TACON1 (check web page:http://www.sap.com/csp -> Services for Partners).

The following sections are based on the documentation mentioned above.

Page 7: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

7

2.2. Using RFC in SAPconnect

RFC Server and Client

SAPconnect defines two function modules:SX_OBJECT_RECEIVE is used for transferring objects (E-mail, fax, IDocs, etc.) andSX_OBJECT_STATUS_RECEIVE is used for transferring status information aboutobjects.

If these functions are called in R/3, from the point of view of the external system,the R/3 is dealing with received, i.e. inbound, objects. In such a case, the R/3System represents the RFC server and the calling program represents the RFCclient. If R/3 calls the functions in an external system it is dealing with sent, i.e.outbound, objects. In such a case, the R/3 System becomes the RFC client andthe called program becomes the RFC server.

Synchronous RFC

Although data in the R/3 System is updated, synchronous RFC is used instead oftransactional or asynchronous RFC. Any possible problems (duplicates in thereceiving system) must be detected in the receiving system (in the case ofSAPconnect, the corresponding R/3 System). In SAPoffice, the message ID,receiver and sender are analyzed for this purpose. The use of the synchronousRFC also ensures that status information for each receiver can be returned to thecaller after the processing of the RFC (synchronous status). In addition, statusvalues can also be sent asynchronously (later) via SX_OBJECT_STATUS_RECEIVE,e.g. for read confirmations.

RFC Server Registration(see Figure 1)

The RFC server running on workstation/front-end platform can be called by theR/3 System in two ways:

a) Triggered start (via application server, SAPGUIand explicit computer ID entry), or

b) Via registration with the SAP Gateway

Due to the fact that a communication system (e.g. fax server) usually representsa process which is constantly running (e.g. NT Service or UNIX Daemon), does notuse SAPGUI and is not forced to run on the SAP Gateway, the registration variantis used. While the system is being booted, the RFC server part of thecommunication system informs the SAP Gateway of the identifier under which itshould be addressed. This identifier must also be defined in the correspondingRFC destination in the R/3 System.

A standalone R/3 gateway can be installed on the partner hardware platformfor better performance, please check OSS note 85254 (4.0x/4.5A) or 137478 (4.5B)for more details.

Page 8: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

8

RFC Client: Logging on to the R/3 System

An RFC client process must log on to an R/3 System under an SAP username (usertype CPIC). In case that inbound documents should be forwarded to multipleclients of either one single or multiple R/3 systems, the external communicationsystem must log on to each R/3 client individually.

The sending and receiving of information can also be tested without an R/3System (using ‘loopback’). The gateway can be configured in such a way thatthe workstation can be addressed as a server (see Figure 2).

Figure 1:

Working in Parallel

The RFC DLL is multi-threading capable. On the RFC server side, it is possible to letseveral RFC server processes or threads register under the same ProgramId to theSAP Gateway. The SAP Gateway distributes RFC calls as a dispatcher toavailable RFC server processes/threads. On the RFC client side, it is possible, in

R/3 DB Server

R/3 ApplicationServer (AS)

R/3 ASRFC Server

R/3 AS

R/3 AS withMessage Server

SAP Gateway

RFC Client: Network/CPIC connection

RFC call to R/3

Figure 1: RFC Server/RFC Client and SAP Gateway Overview (Inbound direction)

Page 9: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

9

parallel, to call the SAPconnect function modules in R/3. In such a case, eachRFC client process or thread must log on to R/3. Logging on to the SAP MessageServer is beneficial in this situation because the message server can execute anautomatic load balancing process which distributes parallel RFC calls to theapplication server with the smallest system load.

Repeated Calls When Errors Occur

If a temporary error in calling the RFC module is recognized by the RFC client(e.g. RFC error COMMUNICATION_FAILURE (connection problems) andSYSTEM_FAILURE (computer problems)) while messages or status messages arebeing transferred to the R/3 System, the client should have access to a repeatcall mechanism which makes a predefined number of attempts to send thedata and then creates a list of the data which could not be transferred.

Figure 2:

R/3 DB Server

R/3 ApplicationServer (AS)

R/3 ASRFC Server

R/3 AS

SAP Gateway

RFC Client

: Network/CPIC connection

2. RFC call to communication system

Figure 2: RFC Server/RFC Client and SAP Gateway Overview (Outbound direction)

RFC Client

1. RFC registration(permanent RFCconnection) 2.

3. RFC loopbackcall

Partner Program

Page 10: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

10

2.3 Implementation Procedure

Installation

1. From the Presentation CD, you should install at least the RFC SDK and the SAPGateway. As an introduction, you read the README file located in the rootdirectory of the CD.

2. From an R/3 System sample code for the RFC modules SX_OBJECT_RECEIVEand SX_OBJECT_STATUS_RECEIVE (R/3 Release 3.1 or higher) can begenerated via transaction SE37 (Function Builder - Initial Screen): Utilities ->RFC Interface -> Generate.

Compile this code, taking into account the RFC library, DLL files and header files.Please ensure that the DLL is accessible at runtime.

Using the sample programs as a basis, you can attach your own communicationsolutions.

Note for Windows NT

If you implement MFC, you should not use the RfcDispatch ( ) function in theserver program. Instead, you should use RfcGetName( ) and execute thedispatching manually.

3 SAPconnect - RFC Functions in Overview

Using the RFC Modules

Data exchange between SAPconnect and an external communication systemtakes place via synchronous RFC. When sending data using RFC, you shouldproceed as follows (see Figure 3):

1. An object to be sent is generated using the SAPoffice user interface or anapplication and is then transferred to SAPoffice. SAPconnect accesses thisobject and transfers it via RFC call from SX_OBJECT_RECEIVE to one or morespecified nodes.

2. Each node processes the object and sends back a synchronous statusmessage informing the sender whether the transmission request was rejected,executed successfully or to be accepted at a later (asynchronous) time.

3. At any point in the future, using RFC call SX_OBJECT_STATUS_RECEIVE, eachnode can release additional status information about this object to thesending system (asynchronous status message).

The receiving process is a mirror image of the sending process.

Page 11: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

11

Synchronous Status

In the case of synchronous status confirmation, status code fields and status textfields are determined in the table RECEIVERS for each receiver by the functionmodule SX_OBJECT_RECEIVE which was called.

As a result, the status information always refers to the send process which iscurrently being processed.

The status codes and the contents of the additional information fields MSGV1 toMSGV4 are described in the appendix A.

Asynchronous Status

Asynchronous status confirmation allows status information to be transferred at alater date (e.g. confirmation that the object has been read) by calling thefunction module SX_OBJECT_STATUS_RECEIVE in the sender node. The tableRECEIVERS can be used to determine the status code for each receiver and thestatus text fields. The object reference is created from the field REPLY_TO.

Figure 3: Synchronous Status / Asynchronous Status (Outbound direction)

Application

SAPoffice

SAPconnect

SX_OBJECT_STATUS_RECEIVE

Address

managem

ent

SX_OBJECT_RECEIVE SEND STATUS

Partner Program

R/3

1.Synchronous Status

2. 3.Asynchronous Status

Page 12: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

12

Apart from the object-oriented status information, it is also possible to use thefunction module SX_OBJECT_STATUS_RECEIVE to transfer status information aboutthe condition of the node.

3.1 Status Transfer Process

The transfer of status information via RFC takes place via the status code andadditional status text fields for each receiver.

In the case of synchronous status, the reference to the message sent is given bythe import parameter, i.e. RECEIVE_INFO. However, in the case of asynchronousstatus, the reference must be created by the REPLY_TO field in the RECEIVE_INFOstructure.

The following diagram illustrates the relevant fields with example values:

Figure 4: Status Information Transfer

Node A Node B

Call SX_OBJECT_RECEIVERECEIVE_INFO-SENDER=ARECEIVE_INFO-COMMID=4711RECEIVE_IINFO-REPLY_TO=SPACERECEIVERS-RECEIVER=BRECEIVERS-RETRN_CODE=0

Return SX_OBJECT_RECEIVERECEIVERS-RECEIVER=BRECEIVERS-RETRN_CODE=701

Call SX_OBJECT_STATUS_RECEIVERECEIVE_INFO-SENDER=ARECEIVE_INFO-COMMID=5812RECEIVE_IINFO-REPLY_TO=4711RECEIVERS-RECEIVER=BRECEIVERS-RETRN_CODE=703

e.g. R/3e.g. mailcomponents

Page 13: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

13

3.2 Object Data

Tables

The object data of the main documents and the attachments in the tablesCONTENTS_TXT for text data and CONTENTS_BIN for binary data is transferredfrom the sender node by calling SX_OBJECT_RECEIVE.The table PACKING_LIST describes the division of data within these tables.

PACKING_LIST Table

Information about the main document and the attachments is transferred to thistable.

It is important that the main document is always contained in the first line oftable PACKING_LIST and possible attachments from the second line onwards.

Field TRANSF_BIN is used to determine whether the data from the maindocument or an attachment are contained in table CONTENTS_TXT or in tableCONTENTS_BIN. Fields BODY_START and BODY_NUM specify the first and numberof lines of data (in the case of binary content, field DOC_SIZE must be used todetermine the exact end of data).

In addition, information relating to name, type, length and language can befound in table PACKING_LIST.

CONTENTS_TXT and CONTENTS_BIN Tables

The division of data in text form and binary data in different tables takes placebecause of the required character set conversion: data in table CONTENTS_TXTis subject to a character set conversion during the RFC call, but data in tableCONTENTS_BIN is transferred without conversion. The RFC automaticallyrecognizes which character set conversion is to be executed.

The relationship between the various parameters in table PACKING_LIST can beillustrated using the following diagrams:

Page 14: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

14

2nd line

3rd line

Attachments (2-n)Main document

PACKING_LIST: 1st line

RAW

TXT

DOC

nth line

in PACKING_LIST

Figure 5: Object Structure

PACKING_LIST

CONTENTS_TXT

CONTENTS_BIN

123

4::20

Start, end

1

20

RFC characterset conversion

No characterset conversion

TRANS_BIN =BODY_START = 1BODY_NUM = 3

TRANS_BIN =BODY_START = 4BODY_NUM = 17

TRANS_BIN =BODY_START = 1BODY_NUM = 20

Figure 6: PACKING_LIST Parameters (required fields)

Page 15: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

15

3.3 List of Receivers

RECEIVERS Table

Table RECEIVERS contains all information about the receivers of an object,including the receiver-oriented attributes (e.g. express, blind copy etc.). Theentries in this table are required for the distribution path.

Field COPY_LIST specifies whether a receiver should actually receive the object(see figure 7) or is only included in the list of receivers (see figure 8).

The examples given in figures 7-8 illustrate how different receivers can receive anobject via various communication nodes. The Internet receiver is indicated as aCC: receiver, but X.400 receivers and fax receivers have no such CC: indicator.

X.400

FaxSMTP

R/3

e.g.X.400 Interface X.400

MTA

MS Exchange

Node 1

Node 2

Fax Connector

Internet Connector

Receiver 1

Receiver 3

Receiver 2

Figure 7: Object routed via 2 different nodes and sent simultaneously to various receivers

Page 16: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

16

X.400

Fax

Internet

Sent to receiver 1on 29 July 1996

Sent to receivers 2 and 3on 30 July 1996

Figure 8: Object sent to various receivers at different times. Field COPY_LIST in table RECEIVERS isselected. The object is not sent to a receiver who has already received it. In such cases,the receiver is still included in the receiver list.

The following graphic illustrates how the entries in table RECEIVERS appear in the scenario fromfigure 7 (calling MS Exchange) and figure 8 (call on 30 July).

Receiver = [email protected]_TYP = InternetCOPY_LIST = SPACECOPY = XVISNAME = John BellSTATUSCODE = 0

Receiver = C = DE;A = DBP; P = SAP; S = XYZADR_TYP = X.400COPY_LIST = XCOPY = SPACEVISNAME = Carol FinnSTATUSCODE = 0

Receiver =00141789ADR_TYP = FAXCOPY_LIST = SPACECOPY = XVISNAME = Brenda SmithSTATUSCODE = 0

Figure 9: Extract from table RECEIVERS for node 2

Page 17: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

17

4 RFC Description

Implementation Notes

1. The indicators ‘Required’, ‘Optional’, ‘Obsolete’ and ‘Internal’ specifywhether an parameter must be given, may be given, should not be used (in thecase of a field from an earlier API1 interface which is no longer supported) or isonly used internally.

2. Flags and Boolean variables contain ‘X’ if they are set and ‘ ‘ (emptycharacter) if they are not set.

3. More information about ABAP-specific data format descriptions (e.g. CHAR,DATS etc.) can be found in the SDK documentation.

4. The initialization of the CHAR fields takes place using empty characters(spaces). In contrast to C strings, they do not end with a hex zero because hexzero may not be used.

5. The initialization of the NUMC fields takes place using a character display ofthe numbers, e.g. “000000000000000”. No hex zero endings are used in this caseeither.

6. Date and time fields are initialized in the same way as CHAR fields.

7. If the RFC server or client is implemented in C or C++, users must ensure that allseven tables are entered when RfcGetData( ) or RfcCall Receive( ) is called. It isimportant that an ItCreate ( ) is called for each table on the RFC client side,even when the table itself is not used.

4.1 SX_OBJECT_RECEIVE

Functionality

This function module allows the transfer of an object (E-mail, fax, IDoc, etc.)including any attachments between an R/3 System and a communicationsystem. When the object has arrived in the target system, it is sent to all receiversentered in the table RECEIVERS when the function module is called. From theSAPoffice perspective, the owner becomes the sender of the object and thecreator is the user who has executed the function module.

There is normally a particular user responsible for handling e-mails.

In the case of inbound objects, the function module is called by anothercommunication component (e.g. another R/3 System or a fax system) via RFC.When sending an object, the function module is called by SAPconnect via RFCin the external communication component.

Page 18: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

18

4.1.1 IMPORT Parameters

RECEIVE_INFO

This structure must contain information about the sender of the object (address, message ID,creation time and date, and send time). In addition, the creation date for the object andthe send date can be entered.

COMM_ID (CHAR 964) (Required)

The message ID of the transferred object which should be uniquelygenerated by the sender. This ID is given in replies in the fieldRECEIVE_INFO-REPLY_TO in cases of asynchronous status messages.IDs generated by R/3 are always 23 bytes in length, whereas externalsenders can transfer a maximum of 964 bytes (X.400).

SENDER (CHAR 1215) (Required)

Address of the sender of an object.The following entry types can be used (notation: <fieldvalue>(CHARno.) ):

- Fax number in the form <number>(30). For outbound messages,R/3 provides the receiver with a fax number which can bedialed (taking into account the international dialing code). Thenumber of the R/3 user entered in address management is givenas the sender.

For inbound messages, fax numbers can, in principle, be given inany format. The receiver numbers must, however, correspond tothe entry in address management, taking into account theautomatic number changes in R/3. The fax number of the sendershould be a number which can be dialed directly (for any reply).

- Internet address according to RFC822 in the form<local>@<domain>(241).

- X.400 address in the form C=<country>(3);A=<adm.domain>(16);P=<priv.domain>(16);O=<org.name>(64);OU1=<org.unit1>(32);OU2=<org.unit2>(32); OU3=<org.unit3>(32);OU4=<org.unit4>(32);S=<lastname>(40);G=<ffrstname>(16);I=<initials>(1);Q=<generation>(3);DDA1=<1.DDAType>(8);DDA1V=<1.DDAValue>(128);DDA2=<2.DDAType>(8);DDA2V=<2.DDAValue>(128); DDA3=<3.DDAType>(8);DDA3V=<3.DDAValue>(128); DDA4=<4.DDAType>(8);DDA4V=<4.DDAValue>(128),e.g. C=DE;A=DBP;P=SAP;S=MILLER;G=FRED

- Pager address in the form <service>(4):<number>(30),e.g. SMS:062279191919

Page 19: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

19

ADR_TYPE (CHAR 4) (Required)

Type of address in RECEIVE_INFO_SENDER.

The following values are allowed:- ‘FAX’: fax number- ‘INT’ : Internet address (SMTP)- ‘X40’ : X.400 address- ‘PAG’: pager address

REPLY_TO (CHAR 964) (Optional)

If this field is selected, the sent object is seen as a reply to the objectindicated by the ID entered. In this case, a correspondence history isautomatically created or continued.

SEND_DATE (DATS - Date field YYYYMMDD - saved as CHAR 8) (Optional)

Date on which the object was sent.

SEND_TIME (TIMS - time field hhmmss - saved as CHAR 6) (Optional)

Time at which the object was sent.

CREATE_DATE DATS - Date field YYYYMMDD - saved as CHAR 8) (Optional)

Date on which the object was created.

CREAT_TIME (TIMS - Time field hhmmss - saved as CHAR 6) (Optional)

Time at which the object was created.

SND_VINAME (CHAR 30) (Optional)

SND_VINAME is the real name of the sender,compare with valid SMTP address:"Frank Hoffmann" <[email protected]>,where “Frank Hoffmann” is the SND_VINAME value and<[email protected]> the address.

DOCUMENT_DATA

This structure must contain the attributes of the object to be sent. These include the nameand type of the object, the expiry date, receiver priority and planned send time. The tablePACKING_LIST contains identical fields for the main document. When completing thesefields, please remember that the entries in DOCUMENT_DATA should correspond exactly withthose in PACKING_LIST.

OBJ_NAME (CHAR 12) (Optional)

Name of the object stored/to be stored in SAPoffice.

Page 20: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

20

OBJ_DESCR (CHAR 50) (Optional)

Short description of the contents of the object (reference line).

OBJ_LANGU (LANG 1) (Internal)

SAP-internal key for the language of the object.

OBJ_SORT (CHAR 10) (Optional)

Sort field for the object. Users can search for the term entered here inSAPoffice attribute searches.

OBJ_EXPDAT (DATS - Date field YYYYMMDD - saved as CHAR 8) (Internal)

Used internally.

SENSITIVITY (CHAR 1) (Optional)

Object confidentiality.A personal object can have the following levels of confidentiality:

- ‘O’: standard confidentiality- ‘F’: functional, can be forwarded functionally- ‘P’: confidential, cannot be viewed by substitute

OBJ_PRIO (CHAR 1) (Optional)

The sender can assign a priority level to the object (0 - high, 2 - low).This value determines the speed at which the message is processedby the communication system. It is possible for high priority messagesto overtake those with low priority.

NO_CHANGE (CHAR 1) (Optional)

If this field is selected (contains ‘X’), the object may only be changedby the author.

PRIORITY (CHAR 1) (Optional)

Priority of an object, ranging from 0 (high) to 9 (low). The priority levelof the object is also displayed in the inbox.

EXPIRY_DAT (DATS - Date field YYYYMMDD - saved as CHAR 8) (Optional)

Expiry date of the object after it is received.

PROC_TYPE (CHAR 1) (Internal)

Used internally.

PROC_NAME (CHAR 30) (Internal)

Used internally.

Page 21: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

21

PROC_SYST (CHAR 10) (Internal)

Used internally.

PROC_CLINT (CLNT 3) (Internal)

Used internally.

SKIP_SCREN (CHAR 1) (Internal)

Used internally.

TO_DO_OUT (CHAR 1) (Internal)

Used internally.

FREE_DEL (CHAR 1) (Internal)

Used internally.

DOC_SIZE (CHAR 12) (Required for binary main body parts)

Total size of the first object (=main body part) in bytes. The number ofbytes determines the end of the last line of the object inCONTEXT_BIN.(DOC_SIZE MOD 255 = No. bytes last line).

STA_TIME (TIMS - Time field hhmmss - saved as CHAR 6) (Optional)

Earliest time at which the document should have reached receiver.

STA_DATE (DATS - Date field YYYYMMDD - saved as CHAR 8) (Optional)

Earliest date on which the document should have reached receiver.

END_TIME TIMS - Time field hhmmss - saved as CHAR 6) (Optional)

Latest time at which the document should have reached receiver.

END_DATE (DATS - Date field YYYYMMDD - saved as CHAR 8) (Optional)

Latest date on which the document should have reached receiver.

Note: The fields STA_* and END_* can be used to enter a time period for the sending of objects.Users can therefore take advantage of cheaper connection rates at night, for example.

SYSTEM_DATA

This structure contains information about calling the RFC.

NODE (CHAR 6) (Internal)

Used internally.

Page 22: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

22

VERSION (CHAR 4) (Required)

Field displaying the RFC version. The contents are structured in theform xxyy. For the current version, the field should contain the value0101. An increase in xx signifies an incompatible change, a change inyy signifies a compatible change. If the first number is larger than thecurrent version number in R/3, an exception is triggered. If the secondnumber is larger than the current version number in R/3, a trace entryis triggered.

4.1.2 TABLE Parameter

RECEIVERS

The receivers of the object must be entered in this table. The table must contain at least oneentry.

RECEIVER (CHAR 1215) (Required)

Name of the receiver. Enter as for RECEIVE_INFO-SENDER.

ADR_TYP (CHAR 4) (Required)

Enter as for RECEIVE_INFO-ADR_TYP.

COPY_LIST (CHAR 1) (Required)

Specifies whether the object should be sent to receiver or whetherthe receiver should only be included in the receiver list, havingalready been sent the object.‘X’ : Object must not given to the receiver‘ ’ : Object is to be given to the receiver

EXPRESS (CHAR 1) (Optional)

If this field contains an ‘X’, the object is sent with the attribute Express.If the receiver is a SAPoffice user who is logged on, a messageappears on screen informing the receiver that an express object hasbeen received.

COPY (CHAR 1) (Optional)

If this field contains an ‘X’, the object is sent with the attribute Copy.

BLIND_COPY (CHAR 1) (Optional)

If this field contains an ‘X’, the object is sent with the attribute Blindcopy. SAPoffice users cannot print or forward these messages.

NO_FORWARD (CHAR 1) (Optional)

If this field contains an ‘X’, the object cannot be forwarded by anSAPoffice user.

Page 23: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

23

NO_PRINT (CHAR 1) (Optional)

If this field contains an ‘X’, the object cannot be printed by anSAPoffice user.

TO_ANSWER (CHAR 1) (Optional)

If this field contains an ‘X’ and the receiver is an SAPoffice user, thereceiver must send a reply before the object can be removed fromthe SAPoffice inbox.

TO_DO_EXPL (CHAR 1) (Optional)

If this field contains an ‘X’ and the receiver is an SAPoffice user, thereceiver must set the object to ‘done’ before the object can beremoved from the SAPoffice inbox.

TO_DO_GRP (CHAR 1) (Optional)

‘To Do’ group of receiver. A number in the range 1-9 can be enteredto identify the group of receivers to be sent the object with the To Doattribute. When one of the receivers in this group sets the object to‘done’, the object disappears from the inbox of all the otherreceivers. If the value ‘0’ is entered, the To Do attribute is not set.

COM_TYPE (CHAR 6) (Obsolete)

This field is not used.

LFDNR (CHAR 3) (Obsolete)

This field is not used.

FAX (CHAR 30) (Obsolete)

This field is not used.

COUNTRY (CHAR 3) (Obsolete)

This field is not used.

SPOOL_ID (CHAR 5) (Obsolete)

This field is not used.

NOTIF_DEL (CHAR 1) (Optional)

If this field contains an ‘X’, the sender receives confirmation as soonas the object is delivered to the receiver. The sender also receives amessage if the object could not be delivered.

This message, however, is supported by only very few mail systems,e.g. X.400 and SAP. This function is under development for Internetmail.

Page 24: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

24

NOTIF_READ CHAR 1) (Optional)

If this field contains an ‘X’, the sender receives a message as soon asthe object has been viewed by the receiver. This message, however,is supported by only very few mail systems, e.g. X.400 and SAP. Thisfunction is under development for Internet mail.

NOTIF_NDEL (CHAR 1) (Optional)

If this field contains an ‘X’, the sender receives a message if theobject could not be sent to the receiver. This information can becalled from the receiver list. This message, however, is supported byonly very few mail systems, e.g. X.400 and SAP. This function is underdevelopment for Internet mail.

SAP_BODY (CHAR 1) (Optional)

If this field contains an ‘X’, the SAP-specific files are sent with theobject in an external data division. This option should only be usedwhen the target system is an SAP system. The object is stored in theinbox as a true SAPoffice object, i.e. all object attributes are retained(e.g. SAPscript object formatting).

REC_DATE (DATS - Date field YYYYMMDD - saved as CHAR 8) (Optional)

Date on which correspondence object was received.

RETRN_CODE (CHAR 4) (Internal)

Used Internally.

VISNAME (CHAR 30) (Optional)

Real name of receiver. Enter as for RECEIVE_INFO-SND_VINAME

PROCTIME (TIMS - Time field hhmmss - saved as CHAR 6) (Optional)

Time at which the object was transmitted.

PROCDATE (DATS – Date field YYYYMMDD - saved as CHAR 8) (Optional)

Date on which the object was transmitted.

TNEF (CHAR 1) (Optional)

If this field contains an ‘X’, it is known that the receiver understandsTNEF coding (see Microsoft TNEF coding in the WINMAIL.DATattachment).

MIME (CHAR 1) (Optional)

If this field contains an ‘X’, it is known that the receiver understandsMIME coding (see Internet Mail RFC 1521).

Page 25: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

25

UUENCODE (CHAR 1) (Optional)

If this field contains an ‘X’, it is known that the receiver understandsUUENCODE coding.

CODE (CHAR 3) (Required for return)

This value returns the status code for synchronous or asynchronousstatus notifications. (Compare with status code list in Appendix A.1.)

MSGV1 (CHAR 50) (Optional)

Variable with which a special explanatory status text can be givenwith a status code.

MSGV2 (CHAR 50) (Optional)

Variable with which a special explanatory status text can be givenwith a status code.

MSGV2 (CHAR 50) (Optional)

Variable with which a special explanatory status text can be givenwith a status code.

MSGV2 (CHAR 50) (Optional)

Variable with which a special explanatory status text can be givenwith a status code.

Page 26: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

26

PACKING_LIST

This table contains information about how to distribute the data in tables CONTENTS_BIN andCONTENTS_TXT between the object and its attachments. The first line refers to the maindocument and each of the following lines refers to an attachment. Certain information aboutthe main document (e.g. DOC_SIZE) can be found in PACKING_LIST and in DOCUMENT_DATA).

TRANSF_BIN (CHAR 1) (Required)

If this field contains an ‘X’, the table entry indicates an object storedin binary format. The contents of the relevant object are located inthe table CONTENTS_BIN. If this field does not contain an entry, thecontents of the object are located in the table CONTENTS_TXT in theappropriate character set. If necessary, the RFC mechanism executesa character set conversion from the calling system to the calledsystem.

HEAD_START (NUMC 15) (Internal)

Used internally.

HEAD_NUM (NUMC 15) (Internal)

Used internally.

BODY_START (NUMC 15) (Required)

Contains the start line of the table dependent on flag TRANSF_BIN. Thecontents of the object are stored from the first line onwards.

BODY_NUM (NUMC 15) (Required)

Contains the number of lines of the relevant table entry which areoccupied by the object contents. The lines concerned are assigned ina block and specified in a unique manner suing the entry inBODY_START.

DOC_TYPE (CHAR 3) (Optional)

Object type. This corresponds to the file extension type, e.g. for aWinWord file, the extension type is *.DOC or one of the following SAPtypes:

'BIN' : unstructured binary data'GRA' : binary graphic data'IDC' : text data (SAP IDoc format)'OTF' : text data (SAP OTF format)'PDF' : text data (Portable Document Format)'PS' : text data (Postscript format)'RAW' : text data'RTF' : binary data (Rich Text Format)'SCR' : text data (SAPscript format)'TIF' : binary data (fax multipage TIFF)

Page 27: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

27

OBJ_NAME (CHAR 12) (Optional)

Name of the object in SAPoffice as entered when creating themessage.

OBJ_DESCR (CHAR 50) (Optional)

Title (short description) of the object.

OBJ_LANGU (LANG 1) (Optional)

SAP-internal key for the language of the object. Possible values arecontained in system table T002.

DOC_SIZE (CHAR 12) (Required for binary body parts)

Total size of the object in bytes. The number of bytes determines theend of the last line of the object in CONTEXT_BIN.(DOC_SIZE MOD 255 = No. bytes last line).

MESS_TYPE (CHAR 4)

This field specifies whether the object data is located outside R/3 andtable CONTENTS_TXT contains only a path reference.

There are currently two possible values:Space = data in CONTENTS_TXT or CONTENTS_BIN‘P’ = file path in URL format in CONTENTS_TXT

ISO_LANGU (CHAR 2) (Optional)

Two-character ISO code for the language of the object.

CONTENTS_BIN

This table must contain a summary of the contents of objects saved as binary objects.

LINE (RAW 255)

Object contents are transferred and saved in binary format.

CONTENTS_TXT

This table must contain a summary of the contents of objects saved as ASCII objects.

LINE (CHAR 255)

Object contents are transferred and saved in text format or charactercode translation.

OBJECT_HEADER

Used Internally.

Page 28: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

28

OBJECT_PARA

Used Internally.

OBJECT_PARB

Used Internally.

4.1.3 Exceptions

Function module SX_OBJECT_RECEIVE may only end with an exception if the object could not bedelivered to any receivers. Therefore, an Exception should always mean that an error hasoccurred which affects the whole message or message attributes for all addresses.

ERR_NODE_UNKNOWN (Internal)

The node of the communications component to whichthe message should be forwarded could not be foundby the R/3 System from which the message was sent.

ERR_INVALID_VERSION The version number entered has an invalid format.

ERR_REC_NOT_SPECIFIED Table RECEIVERS has not been completed.

ERR_INCOMPATIBLE_VERSION The version numbers of the RFC used (first twocharacters) are different from the RFC version numberin R/3.

ERR_PAC_NOT_SPECIFIED Table PACKING_LIST has not been completed.

ERR_INTERNAL Internal error or problem with the enqueue server.

ERR_AUTHORITY Authority check failed (S_RFC Authorization Object ismissing in authorization profile of RFC user in SAPSystem).

4.2 SX_OBJECT_STATUS_RECEIVE

Note: Only the fields which are different from the fields in the function moduleSX_OBJECT_RECEIVE are described in this section.

Functionality

This function module allows the return of status information about objects whichhave been sent. The status information is saved in SAPoffice.

Page 29: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

29

4.2.1 TABLES Parameters

RECEIVERS

Contains the receivers of the object to which the status message refers. One item of statusinformation can be entered for each receiver.

RECEIVE_INFO

COMM_ID (CHAR 964) (Required)

New message ID of the status message.

SENDER (CHAR 1215) (Required)

Contains the sender address for the object to which the statusmessage refers (see Figure 4), NOT the sender of the status message.

REPLY_TO (CHAR 964) (Required)

Message ID of the sent object to which the status message refers.

PACKING_LIST

Not yet supported.

CONTENTS_TXT

Not yet supported.

CONTENTS_BIN

Not yet supported.

4.2.2 EXCEPTIONS

ERR_ORIG_NOT_FOUND The object to which the status information refers couldnot be found.

ERR_INVALID_SYSTEM The system of the object to which the statusinformation refers could not be found.

ERR_REC_NOT_SPECIFIED The function module was called without entering areceiver.

ERR_INTERNAL Internal error or problem with the enqueue server.

ERR_INVALID_VERSION Format of version number is invalid.

ERR_INVALID_SNDADDR Sender address is invalid.

Page 30: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

30

ERR_INVALID_RECADDR At least one recipient address is invalid.

ERR_INCOMPATIBLE_VERSION Different version numbers (first two digits).

ERR_NODE_UNKNOWN Specified node is invalid in SYSTEM_DATA

ERR_PAC_NOT_SPECIFIED PACKING_LIST not completed

ERR_AUTHORITY Authority check failed (S_RFC Authorization Object ismissing in authorization profile of RFC user in SAPSystem).

Page 31: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

31

A. APPENDIX

A1 STATUS CODE LIST *

Description Remarks

V1 V2 V3 V4

700 *** Information Codes ***

701 Delivered successfully to & Should cause a delivery report

Receiver Not used yet Not used yet Additionalinformation

702 No information about delivery to & Should not cause a status message

Receiver Not used yet Not used yet Additionalinformation

703 Message read by & Should cause a read notification

Receiver Not used yet Not used yet Additionalinformation

704 Message processed by & Should cause a read notification

Receiver Not used yet Not used yet Additionalinformation

705 Message deleted by & Should cause a read notification

Receiver Not used yet Not used yet Additionalinformation

706 Message not read by & Should cause a non-read notification

Receiver Not used yet Not used yet Additionalinformation

707 Message not processed by & Should cause a non-read notification

Receiver Not used yet Not used yet Additionalinformation

708 Receiver forbids read/processed notification Should not cause a status message

Receiver Not used yet Not used yet Additionalinformation

709 Receiver rejects message Should cause a non-read notification

Receiver Not used yet Not used yet Additionalinformation

Page 32: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

32

710 Message transferred to node & Internal information

Node Not used yet Not used yet Additionalinformation

711 Message transferred from node & to communication system Internal information

Node Not used yet Not used yet Additionalinformation

712 General message from node &. See long text Internal information

Node Additionalinformation

Additionalinformation

Additionalinformation

713 Transmission costs for message & Internal information

Message Costs Currency Additionalinformation

714 Node & started Administrator information

Node Not used yet Not used yet Additionalinformation

715 Node & finished Administrator information

Node Not used yet Not used yet Additionalinformation

716 Status sent successfully Administrator information

Message Not used yet Not used yet Additionalinformation

717 Node not responsible for receiver & Administrator information

Receiver Node Not used yet Additionalinformation

Page 33: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

33

750 *** Warning Codes ***

751 Message cannot currently be transferred to node & due to RFCerror

Internal error

Node RFCdestination

Not used yet Additionalinformation

752 Node & reports partial system error, throughput decreased Administrator information

Node Not used yet Not used yet Additionalinformation

753 Status cannot currently be transferred to node & due to RFC error Internal error

Node Not used yet Not used yet Additionalinformation

800 *** Error Codes ***

801 Status cannot be sent Should cause a non-delivery notification

Node Message ID Not used yet Additionalinformation

802 No delivery to & because receiver not found Should cause a non-delivery notification

Receiver Node Not used yet Additionalinformation

803 No delivery to & because message has expired Should cause a non-delivery notification

Receiver Not used yet Not used yet Additionalinformation

804 No delivery to & because of invalid transfer parameters Should cause a non-delivery notification

Receiver Node Not used yet Additionalinformation

805 No delivery to & because of too many receivers Should cause a non-delivery notification

Receiver No. ofreceivers

Not used yet Additionalinformation

806 No delivery to & because receiver address is invalid Should cause a non-delivery notification

Address Address type Not used yet Additionalinformation

Page 34: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

34

807 No delivery to & because receiver is no longer valid Should cause a non-delivery notification

Receiver Not used yet Not used yet Additionalinformation

808 No delivery to & because no route found Should cause a non-delivery notification

Receiver Not used yet Not used yet Additionalinformation

809 No delivery to & because receiver cannot be contacted at present Should cause a non-delivery notification

Receiver Not used yet Not used yet Additionalinformation

810 No delivery to & because max. number of send attempts reached Should cause a non-delivery notification

Receiver No. of sendattempts

Not used yet Additionalinformation

811 No delivery to & because part of message cannot be sent Should cause a non-delivery notification

Receiver Not used yet Not used yet Additionalinformation

812 No delivery to &, reason: see long text Should cause a non-delivery notification

Receiver Node Additionalinformation

Additionalinformation

813 No delivery to & because sender address is invalid Should cause a non-delivery notification

Address Address type Error no. Additionalinformation

814 No delivery because sender address type (&) is invalid Should cause a non-delivery notification

Type ofsenderaddress

Error no. Not used yet Additionalinformation

815 No delivery because reference & not readable Should cause a non-delivery notification

Reference Node Types Additionalinformation

816 Message cannot be transferred to node & due to RFC error Internal error, leads to non-delivery notification inR/3

Node RFCdestination

Not used yet Additionalinformation

817 Message cannot be processed in R/3, reason: see long text Internal error, leads to non-delivery notification inR/3

Info text Info text Info text Info text

Page 35: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

35

818 Message cannot be processed in node &, reason: see long text Internal error, leads to non-delivery notification inR/3

Node Info text Info text Info text

819 Message cannot be processed in node & because receiver isinvalid

Internal error, leads to non-delivery notification inR/3

Node Receiver Not used yet Additionalinformation

820 Message cannot be processed in node & because message cannotbe encoded

Internal error, leads to non-delivery notification inR/3

Node Not used yet Not used yet Additionalinformation

821 Message cannot be processed in node & because parameterscannot be converted

Internal error, leads to non-delivery notification inR/3

Node Error no. Not used yet Additionalinformation

822 Message in node & cannot be transferred to communicationsystem

Internal error, leads to non-delivery notification inR/3

Node Not used yet Not used yet Additionalinformation

823 Node & reports system error, system stopped Administrator information

Node Not used yet Not used yet Additionalinformation

824 Message cannot be processed in node & because service notavailable

Internal error, leads to non-delivery notification inR/3

Node Address type Not used yet Additionalinformation

825 Message cannot be processed because table & is not complete Administrator information

Table Not used yet Not used yet Not used yet

826 Message cannot be processed because no route exists from & to&

Administrator information

Sender Receiver Type Additionalinformation

827 Message cannot be processed because node & is not known Internal error

Node Not used yet Not used yet Not used yet

Page 36: Interface Documentation BC-CON - Archive...System represents the RFC server and the calling program represents the RFC client. If R/3 calls the functions in an external system it is

36

829 Internal error: & & & & Internal error

Info text Info text Info text Info text

830 Message cannot be processed in node & because of Releaseincompatibility

Node RFC version Additionalinformation

Additionalinformation

Internal error

* Variables ‘&’ are replaced consecutively by the values of V1,V2,V3,V4.

V1 corresponds to field MSGV1 in table RECEIVERS

V2 corresponds to field MSGV2 in table RECEIVERS

V3 corresponds to field MSGV3 in table RECEIVERS

V4 corresponds to field MSGV4 in table RECEIVERS