cancel
Showing results for 
Search instead for 
Did you mean: 

HTTP Sender to File

Former Member
0 Kudos

Hi all!

I have a scenario like this:

<b>HTML page(http adapter)->SAP XI->(File Adapter)D:\somedir</b>

I will send a file from some HTML page, for that iam using HTTP sender adapter.It will reach to SAP XI. From there i will post the file to some physical location in my machine. For this am using File adapter.

I dont know what to give in Integration Directory(For HTTP)->Communication channel->Address Type,Target Host, Service Number.........

Please help me what to be done further.

Thanks in advance!

Accepted Solutions (1)

Accepted Solutions (1)

former_member91687
Active Contributor
0 Kudos

Hi Satish,

You would not require a HTTP sender communication channel, and also a sender agreement. The rest of the configurations would be the same.

Regards,

Chandra

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi Satish,

XI Integration engine continues to listen to its default http port. So, there is no need to create a sender agreement in case of http adapter. Hence, there is no need to define any sender communication channel.

I hope this helps.

Riyaz

Former Member
0 Kudos

Hi Riyaz!

I have tried with what you you suggested, but still i cannot find the file in my target dir. So I am trying to send directly in Runtime Workbench-> in payload am pasting the xml content and sending to

http://<abc>:<port xxx>/sap/xi/engine?type=entry

In Header information->service....what should i give here?

(I am giving my Business system name here.)

Please help me!

Former Member
0 Kudos

check http logs in SMICM and SICF

''a vb script to send a file

option explicit

'' Makes a httpcall binary clean, and sends data from a file

'' Author: Otto Frost

'' Copyright: Otto Frost

Dim url ' url to send to

Dim file ' file to send, UNC path

''You must code special characters such as forward slash (/), hyphen , period (.), or colon ( with escape characters

''(for example, %2F for /, %2D for -, %2E for .,and %3A for :).

url = "http://XIDEV:8000/sap/xi/adapter_plain?service=SE1CLNT500"

url = url & "&namespace=urn%3Axxx%2Dse%3ACREDIT%3ADECISION"

url = url & "&interface=MI_SOAP_OUTBOUND"

url = url & "&sap%2Dclient=100"

url = url & "&sap%2Duser=httpuser&sap%2Dpassword=123456&sap%2Dlanguage=EN"

''&qos=EO&msgguid=3C61F6C12F1E2DD1E10000000A1145AB

''urn:trema-com:trema:trema

file = "utf8.txt"

''file = "xx.zip"

''file = "yy.txt"

file = "test.xml"

file = "soap20051208.151353.0.xml"

file = "soap_request20051219.155753.0.xml"

' should not have to change anything below this line

Dim strm

Set strm = CreateObject("ADODB.Stream")

'Dim IE As SHDocVw.InternetExplorer

Dim g_oIE 'As InternetExplorer ' Global reference to an

' instance of IE

Set g_oIE = CreateObject("InternetExplorer.Application")

g_oIE.Visible = True

'Private Sub cmdSubmit_Click()

Dim edtPostData

''edtPostData.Text = "" ' Initialize an edit box for testing

Dim aByte

''ReDim aByte(0) 'As Byte ' Array of bytes to hold data to post

' Extract the URL encoded data from the UI,

' and pack it into an array of bytes

''cFlavor = "Orange"

''cParamName = "FName="

''cParamFlavor = "Flavor="

''cSeparator = "&"

''cPostData = cParamName & "F1" & cSeparator & cParamFlavor & cFlavor

''PackBytes aByte, cPostData

strm.Type = 1

strm.Open

strm.Type = 1

strm.LoadFromFile file

''strm.WriteText cPostData

strm.Position = 0

strm.Type = 1

aByte = strm.Read

' For testing, rebuild the POST data and stuff

' it into an edit box

''For i = LBound(aByte) To UBound(aByte)

'' edtPostData = edtPostData + Chr(aByte(i))

''Next

Dim vPost 'As Variant

vPost = aByte ' Assign the byte array to a VARIANT

Dim vFlags 'As Variant

Dim vTarget 'As Variant

Dim vHeaders 'As Variant

vHeaders = "Content-Type: application/x-www-form-urlencoded" + Chr(10) + Chr(13)

vHeaders = "content-type: text/plain; charset=UTF-8" + Chr(10) + Chr(13)

vHeaders = "content-type: text/plain;UTF-8" + Chr(10) + Chr(13)

''vHeaders = "content-type:application/octet-stream" + Chr(10) + Chr(13)

vHeaders = "content-type: application/octet-stream" + Chr(10) + Chr(13)

vHeaders = ""

vHeaders = vHeaders & "SOAPAction: None" & Chr(10) & Chr(13)

vHeaders = vHeaders & "Content-Type: text/xml" & Chr(10) & Chr(13)

''Content-Length: nnnn

''Content-Encoding: gzip

''Content-Type: image/gif

''Content-Type: text/html; charset=ISO-8859-4

''Transfer-Encoding: chunked

' You're done. Now call Navigate

' Note: modify path to server as appropriate

g_oIE.Navigate url, vFlags, vTarget, vPost, vHeaders

' Private Sub Form_Load()

' Create an instance of IE

' Set g_oIE = New InternetExplorer

' g_oIE.Visible = True

' Populate a combobox with some flavor choices

' cboFlavor.List(0) = "Vanilla"

' cboFlavor.List(1) = "Chocolate"

' cboFlavor.List(2) = "Strawberry"

' cboFlavor.ListIndex = 0 ' The default choice

' End Sub

' Utility function to pack the data to post into an array of bytes

'Sub PackBytes(ByteArray() As Byte, ByVal PostData As String)

Sub PackBytes(ByteArray() , ByVal PostData )

iNewBytes = Len(PostData) - 1 ' Get rid of the null termination

If iNewBytes < 0 Then

Exit Sub

End If

ReDim ByteArray(iNewBytes)

For i = 0 To iNewBytes

ch = Mid(PostData, i + 1, 1)

If ch = Space(1) Then

ch = "+"

End If

ByteArray(i) = Asc(ch)

Next

End Sub

Message was edited by: Otto Frost

Message was edited by: Otto Frost

shailesh_mane
Participant
0 Kudos

Hello Satish,

For the Communication Channel try the following:

Adapter Type: XI

Transport Protocol: HTTP 1.0

Message Protocol: XI 3.0

Adapter Engine: Integration Server

Addressing Type: URL Address

Target Host: <IP address of the receiving machine>

Service Number: <port>

Path: /file/receiver

On the File Adapter you would have to define the /file/receiver as a folder u want to receive the files into. There is a document on File Adapter configuration (not related to XI). If you do not have it then let me know and I can email it to you.

Hope this helps.

Regards,

Shailesh

Former Member
0 Kudos

Hi Shailesh!

I have defined File/receiver.

and Iam posting my xml file directly (in Payload) in Runtime Workbench. to the following url:

http://<abchost>:<someport>/sap/xi/engine?type=entry

I got nothing in my target directory that i mentioned in my File Receiver communication channel. I am giving the following in Runtime Workbench:

send Message to:p://<abchost>:<someport>/sap/xi/engine?type=entry

service:HTTPABS (here i am giving Business system name)

Interface:Http_MI

Interface Namespace:http://abc.com/send

User:xxxxx

Password:xxxxx

Quality of service:Exactly Once

Payload:

<?xml version="1.0" encoding="UTF-8"?>

<ns0:Http_MT xmlns:ns0="http://httpadp.com/send">

<name/>

</ns0:Http_MT>

But i find nothing in my target directory.Plesae help me!

former_member8655
Active Participant
0 Kudos

Hi Satish

In your scenario.

1)No need to create sender HTTP sender adapter

you can directly post your XML message to intergration engine,so no Communication channel,sender agreement.etc

2)you can post ur message on pipeline url

http://<hostname>:<abap http port>/sap/xi/engine?type=entry

Regards

mitesh

Former Member
0 Kudos

Hi

I have tried this message in Runtime Workbench with the following URL:http://sapep:8000/sap/xi/engine?type=entry

<?xml version="1.0" encoding="UTF-8"?>

<ns0:Http_MT xmlns:ns0="http://httpadp.com/send">

<name/>

</ns0:Http_MT>

In receiver communication channel I specified to D:\somedir but i did not find anything in my D:\somedir.

Please help me!

Former Member
0 Kudos

Hi,

Check this SDN tv demo, it has detail of HTTP adapter setup.

https://media.sdn.sap.com/SDNTV/main.asp?mediaId=107

Refer to this link for adapter settings.

http://help.sap.com/saphelp_nw04/helpdata/en/0d/5ab43b274a960de10000000a114084/frameset.htm

Thanks,

Prateek

Message was edited by: Prateek Shah