on 10-01-2009 2:29 PM
Hi Experts,
<p>
I need to call attach a Document/File to technical place via RFC (DotNet Connector). So i created FB Z_ATTACH_DOCUMENT), which calls BAPI_DOCUMENT_CREATE2.<br>
I dont want to call BAPI_DOCUMENT_CREATE2 directly from my .net app, because there will be some ABAP code added in future.
<p>
Function below works OK when i call it via SE37. But when i call it via DotNet Connector from vb.net, the Document Info Record is not created (BAPI_DOCUMENT_CREATE2 returns no document number) and i get this from return parameter:<p>
Field: ""<br>
Id: "26"<br>
Log_Msg_No: "000000"<br>
Log_No: ""<br>
Message: "Fehler beim Einchecken und Ablegen von C:
temp
temp.lec"<br>
Message_V1: "C:
temp
temp.lec"<br>
Message_V2: ""<br>
Message_V3: ""<br>
Message_V4: ""<br>
Number: "253"<br>
Parameter: ""<br>
Row: 0<br>
System: "T01CLNT001"<br>
Type: "E"<br>
<p>
Problem seems to be with StorageCategory. If i leave f-Storagecategory blank while calling BAPI_DOCUMENT_CREATE2, the DIR will be created and linked with the technical place, but the original file won't get checked in.
I fond note 504692, and tried to first create the DIR and then check-in the file via CVAPI_DOC_CHECKIN, but the error remains the same.
<p>
I connect via DotNec Connector with same user login as with SAP GUI, so there should be no problems with permissions.
<p>
We use SAP/R3 ECC6.0
<P>
<tt><br>
FUNCTION Z_ATTACH_DOCUMENT.<br>
*"----
<br>
""Lokale Schnittstelle:<br>
*" IMPORTING<br>
*" VALUE(MANDT) TYPE MANDT<br>
*" VALUE(DOC) TYPE BAPI_DOC_DRAW2<br>
*" EXPORTING<br>
*" VALUE(LF_DOCTYPE) TYPE BAPI_DOC_DRAW2-DOCUMENTTYPE<br>
*" VALUE(LF_DOCNUMBER) TYPE BAPI_DOC_DRAW2-DOCUMENTNUMBER<br>
*" VALUE(LF_DOCPART) TYPE BAPI_DOC_DRAW2-DOCUMENTPART<br>
*" VALUE(LF_DOCVERSION) TYPE BAPI_DOC_DRAW2-DOCUMENTVERSION<br>
*" VALUE(RETURN) TYPE BAPIRET2<br>
*" TABLES<br>
*" ITABTEXTS STRUCTURE BAPI_DOC_DRAT<br>
*" ITABFILES STRUCTURE BAPI_DOC_FILES2<br>
*" ITABOBJECTLINKS STRUCTURE BAPI_DOC_DRAD<br>
*"----
<br>
<br>
Dokumentendaten<br>
DATA: ls_doc LIKE bapi_doc_draw2.<br>
ls_doc = doc.<br>
<br>
Bapi-Returnstruktur<br>
*DATA ls_return LIKE bapiret2.<br>
return-type = 'S'.<br>
<br>
********************************<br>
CLEAR ls_doc.<br>
ls_doc-Documenttype = 'LEC'.<br>
ls_doc-Documentversion = '00'.<br>
ls_doc-Documentpart = '001'.<br>
ls_doc-Laboratory = '001'.<br>
<br>
CLEAR ITABTEXTS.<br>
REFRESH ITABTEXTS.<br>
<br>
DATA t TYPE BAPI_DOC_DRAT.<br>
t-Language = 'D'.<br>
t-Description = 'LPK-Export 21067007'.<br>
APPEND t TO ITABTEXTS.<br>
<br>
CLEAR ITABFILES.<br>
REFRESH ITABFILES.<br>
<br>
DATA f TYPE BAPI_DOC_FILES2.<br>
f-Storagecategory = 'ZINTERN'.<br>
f-DocFile = 'C:\temp\temp.lec'.<br>
f-Wsapplication = 'LEC'.<br>
APPEND f to ITABFILES.<br>
<br>
<br>
CLEAR ITABOBJECTLINKS.<br>
REFRESH ITABOBJECTLINKS.<br>
<br>
DATA o TYPE BAPI_DOC_DRAD.<br>
o-Objecttype = 'IFLOT'.<br>
o-Objectkey = 'DE-73035-00001'.<br>
APPEND o TO ITABOBJECTLINKS.<br>
<br>
*o-Objecttype = 'EQUI'.<br>
*o-Objectkey = '000000000010006770'.<br>
*APPEND o TO ITABOBJECTLINKS.<br>
********************************<br>
<br>
**************************************************************<br>
Dokument anlegen<br>
**************************************************************<br>
CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'<br>
EXPORTING<br>
documentdata = ls_doc<br>
IMPORTING<br>
documenttype = lf_doctype<br>
documentnumber = lf_docnumber<br>
documentpart = lf_docpart<br>
documentversion = lf_docversion<br>
return = return<br>
TABLES<br>
documentdescriptions = ITABTEXTS <br>
objectlinks = ITABOBJECTLINKS <br>
documentfiles = ITABFILES. <br>
.<br>
<br>
IF NOT return-type CA 'EA'.<br>
commit work.<br>
ENDIF.<br>
<br>
END FUNCTION.<br>
</tt>
<p>
Kindest regards,<br>
Peter Herweg
Hi,
the solution was to add parameters hostname and pf_ftp_dest (hostname specifies the host, where the calling process runs).
CALL FUNCTION 'BAPI_DOCUMENT_CREATE2'
EXPORTING
documentdata = ls_doc
hostname = hostname
pf_ftp_dest = 'SAPFTPA'
* pf_http_dest = 'SAPHTTP'
IMPORTING
documenttype = lf_doctype
documentnumber = lf_docnumber
documentpart = lf_docpart
documentversion = lf_docversion
return = return
TABLES
documentdescriptions = itabtexts
objectlinks = itabobjectlinks
documentfiles = itabfiles.
.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi, what is meant with hostname exactly?
- my local machine name which starts the rfc?
- the application server name which uses the rfc?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
11 | |
10 | |
6 | |
5 | |
5 | |
4 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.