Quantcast
Channel: SCN: Message List - SAP Business One Integration Technology
Viewing all 973 articles
Browse latest View live

B1if for Sales Order import

$
0
0

Hi there,

 

 

 

I'm trying to create my first real scenario in B1 Integration Framework, and I have some small doubts.

 

 

 

The scenario is as follows:

 

 

  1. Client will have some information for creating sales orders in a auxiliary database (not a "SAP B1 database"). Typically, this info will be provided for other systems, as e-commerce sites or 3rd party applications, and it will be stored in a different database (but located in the same server than SAP Business One).
  2. Time based (i.e., every 10 minutes), B1 Integration Framework will check if there is a new sales order pending to import. B1 Integration Framework will create a Sales Order in a SAP Business One system.
  3. After processing, B1 Integration Framework should send an email, with a summary of import result. It should also update the sales order records in the SOURCE database, with the Sales Order docentry. This is done for checking if a Sales Order has been already imported, and for knowing which docEntry has been assigned.

 

 

 

How could the #3 be solved? I mean...

  • A) If the final atom in the scenario step is the 'Invoke XSLT file to convert import object to result object', how could I specify afterwards a 'send email' atom with the results?
  • B) How could we update the source records (in the auxiliary database) with the docEntries?

 

 

 

 

 

Thank you very much in advance for any help!!!


Re: OrderCreation and OrderConfirmation

$
0
0

Hi,

 

I assume your issue happens in step 2, right?

At which atom does the issue occur?

Could you please activate debugging and show me the message log entry at the point where the error happens?

 

Best regards

Bastian

Re: OrderCreation and OrderConfirmation

$
0
0

Hi Bastian,

 

thats right, in Step2

 

When I put a xpath in the Key Value, the path is red and with 'mouse over' I see a label with "... required attibute select is missing". I've use the xpath: /vpf:Msg/vpf:Body/vpf:Payload[./@Role='S']/BOM/BO/Documents/row/DocEntry

(The xpath in the systemid is working fine: "/vpf:Msg/vpf:Header/vpf:ReceiverList/vpf:Receiver[./@handover='P']/@Id")

 

SOConfirm.png

 

By debugging the Message by B1 Object is:

<Msg xmlns="urn:com.sap.b1i.vplatform:entity" MessageId="15092107474261965460C0A80028BF9E" BeginTimeStamp="20150921074742" logmsg="0000" SubMessageId="" status="success" owntst="true" test="true">

<Header>

<IPO Id="vPlatform_Test"/>

<Sender Id="" ObjId="RC.SoConfirm2"/>

<Receiver Id="001sap0002"/>

<ReceiverList>

<Receiver Id="001sap0002" handover="P"/>

</ReceiverList>

<Identification Ident="vBIU Name" IdPar="n.a."/>

<nsList/>

<vBIU Id="RC.SoConfirm2" ver="1.0.0" SId="RC.SoCreatConfirm2" filter="" phase=""/>

<Variables>

<var id="userid" value=""/>

<var id="username" value=""/>

</Variables>

<Properties/>

<SysTypeProperties type="B1if" offline="" snd="senderdummy" rcv="001sap0002" ssystype="" rsystype="F.AnySystem">

<property Key="DelDatePlus" Value="" Dir="R" Src="Cust" VSrc="Cfg"/>

</SysTypeProperties>

<LocalProperties type="B1if" biu="RC.SoConfirm2" snd="senderdummy" rcv="001sap0002" sid="RC.SoCreatConfirm2" offline=""/>

<VarProperties/>

</Header>

<Body>

<Payload Role="T" Type="Call"/>

<Payload Role="S">*** no test message specified ***</Payload>

</Body>

</Msg>

 

 

regards

Re: OrderCreation and OrderConfirmation

$
0
0

Hi,

 

OK,  now it getting clearer.

In your test run, the Sender payload is empty and therefore the entered xpath in parameter key can't find anything.

 

Please do the following:

  1. Enter a leading xform atom before your B1 object call retrieval atom.
  2. For first tests, please enter a hard-coded DocEntry, e.g. #1 of a SalesOrder which already exists to test your retrieval call atom.
  3. Activate the scenario package (both steps) and start the order creation step 1.
  4. The 2nd step gets triggered automatically, and in the message log of step 2 you will see the result of step 1 under following path: /vpf:Msg/vpf:Body/vpf:Payload[./@Role='S']/vPStatus/...
  5. Your hard-coded Sales Order #1 should have been retrieved successfully, now.

 

If it's working to retrieve a hard-coded SalesOrder DocEntry, you can now try enter the xpath for the parameter key.

Therefore:

  1. The 2nd step get triggered automatically, and you can see the result of step 1 under following path: /vpf:Msg/vpf:Body/vpf:Payload[./@Role='S']/vPStatus/...
  2. Please find the exact path where the created DocEntry of step 1 can be found and align your xpath for parameter key (in B1i UI please enter "'" instead of "&apos;"), e.g.:
    /vpf:Msg/vpf:Body/vpf:Payload[./@Role='S']/vPStatus/vpf:Msg/vpf:Body/vpf:Payload[./@id='atomxxx'][./@objectid='17'][./@keyname='DocEntry'][./@DIresult='success']/@DImsg
  3. Reactivate the scenario and run it again, this time the created Sales Order from step 1 should be retrieved correctly in step 2.

 

Best regards

Bastian

 

P.S: In case of an DI Error in step in you could skip the retrieval in step two and e.g. send an email as error action,

Error on B1if

$
0
0

Hi All,

 

 

i am getting following error in B1if. But test connection all is successful. Where this issue will comes

 

com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.bizprocessor.BizProcException: BPE001 Nested exception: com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: java.lang.Exception: com.sap.b1i.xcellerator.XcelleratorException: XCE001 Nested exception: com.microsoft.sqlserver.jdbc.SQLServerException: The password property exceeds the maximum number of 128 characters.

Re: Encoding Problems

$
0
0

Hi Bastian,

I've followed your advice of checking :

"Monitoring -> Process Control -> Scenario Processes - Inbound section"


and this is what i view (even if I use inbound channel with identification with root tag even with "urlpar(action)" with Identifier = "PlaceOrder"


2015-09-22 11_49_48-DEV2015 9.1 PL7 SQL2012 R2 - VMware Player (Non-commercial use only).png


but this view doesn't tell me nothing new because the format is always the wrong :


<key name="HeaderData[Total]" value="60" xss_4ELE="60" xss_4ATT="60" xss_4JSC="60" xss_4CSS="60"/>

<key name="HeaderData[Discount]" value="0" xss_4ELE="0" xss_4ATT="0" xss_4JSC="0" xss_4CSS="0"/>

<key name="HeaderData[DiscountPercent]" value="0" xss_4ELE="0" xss_4ATT="0" xss_4JSC="0" xss_4CSS="0"/>

<key name="HeaderData[VatSum]" value="6" xss_4ELE="6" xss_4ATT="6" xss_4JSC="6" xss_4CSS="6"/>

<key name="HeaderData[DocTotal]" value="66" xss_4ELE="66" xss_4ATT="66" xss_4JSC="66" xss_4CSS="66"/>

 

At this time i guess that there is something wrong in the ajax call but i don't understand what..

 

 

restpath = "/B1iXcellerator/exec/ipo/vP.0010000117.in_HCSX/"

  +"com.sap.b1i.vplatform.runtime/INB_HT_CALL_SYNC_XPT/INB_HT_CALL_SYNC_XPT.ipo/proc";

 

  var myurl = myDomainAndPort + restpath;

  

 

  jQuery.sap.require("sap.ui.commons.MessageBox");

  var oThis = this;

  $.ajax(

  {

  type : "POST",

  url : myurl,

  dataType: "json",

  async: true,

  data: newDocModel.oData,

  //data : testJsonDocModel.oData,

  //data: JSON.stringify(testJsonDocModel),

  statusCode : {

  200 : function(data,textStatus,jqXHR ) {

 

  sap.ui.commons.MessageBox.show(

  "OOOK");

  }

  }

  }).error(function(jqXHR, textstatus, errorthrown) {

  sap.ui.commons.MessageBox.show(

  textstatus + " " + errorthrown + " " +

  jqXHR.responseText);

  });

Re: OrderCreation and OrderConfirmation

$
0
0

Hi Bastian,

 

I'm a little further now, thanx. But stil not the desired end results.

After I added a hard-coded docentry in the B1 Object call, both scenarios has status 'Success' in the message log.

The log file from the second scenario contains under Payload Role 'C' all the object fields (it's a large file, so I collapse the table nodes):

 

*****

<Msg xmlns="urn:com.sap.b1i.vplatform:entity" xmlns:b1il="urn:com.sap.b1i.sim:b1ilog" xmlns:b1im="urn:com.sap.b1i.sim:b1imessage" xmlns:bfa="urn:com.sap.b1i.bizprocessor:bizatoms" xmlns:jdbc="urn:com.sap.b1i.adapter:jdbcadapter" xmlns:sim="urn:com.sap.b1i.sim:entity" xmlns:vpf="urn:com.sap.b1i.vplatform:entity" MessageId="15092204205501167243C0A800281121" BeginTimeStamp="20150922042055" logmsg="0000" status="success" msglogexcl="false" handover2CentralSrv="" MessageLog="true" msglogdbop="update" SubMessageId="1" BackMessageId="2" DelMessageId="">

<Header>

<msg.occ INB="1" PRC="n.a." PRQ="0" OUTBIU="1" OUT="1"/>

<msglog step="Default message log" always="false" b1ifactive="true"/>

<Receiver Id="001sap0002" ObjId="single"/>

<IPO Id="INB_IQ_INTQ_ASYN_BIU" tid="15092122191401167233C0A80028EE66"/>

<IPO Id="OUT_FILE" tid="15092122191401167868C0A800285B44"/>

<Resumption>

<starter ipo="/vP.001sap0002.in_BIU/com.sap.b1i.vplatform.runtime/INB_IQ_INTQ_ASYN_BIU/INB_IQ_INTQ_ASYN_BIU.ipo/proc"/>

<restart id="outbound" q="Q.OUT_FILE.001sap0002" s="S.RC.SoConfirm2" u="15092204205501167243C0A800281121.1"/>

</Resumption>

<INproperties>

<PAR.Channel>INB_IQ_INTQ_ASYN_BIU</PAR.Channel>

<PAR.SysId>001sap0002</PAR.SysId>

<dbq.stream>S.RC.SoConfirm2</dbq.stream>

<ds>com.sap.b1i.vplatform.runtime</ds>

<http.user/>

<offline/>

<sessionid>100121083251220202957F000001E654</sessionid>

<starter>

/vP.001sap0002.in_BIU/com.sap.b1i.vplatform.runtime/INB_IQ_INTQ_ASYN_BIU/INB_IQ_INTQ_ASYN_BIU.ipo/proc

</starter>

</INproperties>

<Sender Id="001sap0002" ObjId="successor"/>

<Successor Id="" Mode=""/>

<Identification Ident="vBIU Name" IdPar="n.a."/>

<nsList/>

<Retrieval adapter="" type="" ruledoc=""/>

<ReceiverList>

<Receiver Id="001sap0002" filter="" sndfilter="" subscribed="true" handover="P"/>

</ReceiverList>

<vBIU Id="RC.SoConfirm2" ver="1.0.0" SId="RC.SoCreatConfirm2" filter="" phase="X"/>

<Variables>

<var id="userid" value="no_authentication"/>

<var id="username" value="no_authentication"/>

</Variables>

<Properties/>

<SysTypeProperties type="B1if" offline="" snd="001sap0002" rcv="001sap0002" ssystype="F.AnySystem" rsystype="F.AnySystem">

<property Key="DelDatePlus" Value="" Dir="S" Src="Cust" VSrc="Cfg"/>

<property Key="DelDatePlus" Value="" Dir="R" Src="Cust" VSrc="Cfg"/>

</SysTypeProperties>

<LocalProperties type="B1if" biu="RC.SoConfirm2" snd="001sap0002" rcv="001sap0002" sid="RC.SoCreatConfirm2" offline=""/>

<VarProperties/>

<MsgList counter="1" complete="true" multimsg="false" delmsg=""/>

<Outbound type="Flat File" channel="OUT_FILE" format="xml" fmode="write" fname="C:\B1ifCursusB1i\FileOutXML\20150922042057.xml" encoding="UTF-8" ruledoc="not_applicable" deli="" wrap="" dellead="0" bom="false" dtd=""/>

</Header>

<Body>

<Payload Role="T" Type="Handover"/>

<Payload Role="S">

<vPStatus xmlns="" status="success" no="0000" Message="Processing completed" Phase="final" B1IMessageId="15092204204601166255C0A800286BAD" SubMessageId="1_1" BeginTimeStamp="20150922042046" EndTimeStamp="20150922042055" SenderSysId="001sap0002" ReceiverSysId="0010000107" SenderObjectTypeId="OrderCreation" ReceiverObjectTypeId="" succ="RC.SoConfirm2" offline.id="">

<Msg xmlns="urn:com.sap.b1i.vplatform:entity" MessageId="15092204204601166255C0A800286BAD" BeginTimeStamp="20150922042046" recording="true" logmsg="0000" SubMessageId="1_1" status="success" msglogexcl="false" handover2CentralSrv="" MessageLog="true" msglogdbop="update" BackMessageId="1_2" DelMessageId="1" b1msg="499" b1status="success">

<Header>

<msg.occ INB="1" PRC="1" PRQ="" OUTBIU="n.a." OUT="1"/>

<msglog step="Default message log" always="false" b1ifactive="true"/>

<Receiver Id="0010000107" ObjId="17"/>

<IPO Id="INB_FI_EXST_ASYN_NAM" tid="15092122191401166228C0A80028CBD7"/>

<IPO Id="PRC_FIn" tid="15092122191401166393C0A8002890CE"/>

<IPO Id="OUT_B1" tid="15092122191401166787C0A80028C21B"/>

<Resumption>

<starter ipo="/vP.001sap0002.in_FEAN/com.sap.b1i.vplatform.runtime/INB_FI_EXST_ASYN_NAM/INB_FI_EXST_ASYN_NAM.ipo/proc"/>

<restart id="processing" q="Q.PRC_FIn.001sap0002" s="S.RC.SoCreat2" u="15092204204601166255C0A800286BAD.1"/>

<restart id="outbound" q="Q.OUT_B1.0010000107" s="S.RC.SoCreat2" u="15092204204601166255C0A800286BAD.1_1"/>

</Resumption>

<ProcStream>S.RC.SoCreat2</ProcStream>

<Sender Id="001sap0002" ObjId="OrderCreation"/>

<Inbound deli="" wrap="" pltype="xml" encoding="UTF-8" path="C:\B1ifCursusB1i\FileInXML" ext="xml" file="OrderCreation" size="638" date="22-09-2015 04:20" fileerrid="1509220420Zb1x2FfGHiQu0x2FFMbtkmAwrjCprdUx3D.xml"/>

<Successor Id="RC.SoConfirm2" Mode="message"/>

<Identification Ident="File Name" IdPar=""/>

<nsList xmlns=""/>

<Retrieval type="Handover"/>

<Outbound type="SAP Business One" channel="OUT_B1" method="Synchronous Insert" objectid="17" updpol="" keys="DocEntry"/>

<vBIU Id="RC.SoCreat2" ver="1.0.0" SId="RC.SoCreatConfirm2" filter="" phase=""/>

<Variables>

<var id="userid" value="no_authentication"/>

<var id="username" value="no_authentication"/>

</Variables>

<Properties/>

<SysTypeProperties type="B1if" offline="" snd="001sap0002" rcv="receiverdummy" ssystype="F.AnySystem" rsystype="">

<property Key="DelDatePlus" Value="" Dir="S" Src="Cust" VSrc="Cfg"/>

</SysTypeProperties>

<LocalProperties type="B1if" biu="RC.SoCreat2" snd="001sap0002" rcv="receiverdummy" sid="RC.SoCreatConfirm2" offline=""/>

<VarProperties/>

<ReceiverList>

<Receiver Id="0010000107" filter="" sndfilter="" subscribed="true" handover="P"/>

</ReceiverList>

<MsgList counter="1" complete="true" multimsg="false" delmsg="1"/>

</Header>

<Body>

<Payload Role="T" Type="File exist" FileName="C:\B1ifCursusB1i\FileInXML\OrderCreation.xml"/>

<Payload Role="S" intype="xml">

<document xmlns="">

<header>

<cust>C20000</cust>

<date>20150610</date>

<deldate>20150820</deldate>

<referentie>test 65</referentie>

</header>

<line>

<item>A00001</item>

<aantal>5</aantal>

<prijs>2</prijs>

<totaalprijs>10</totaalprijs>

</line>

<line>

<item>A00002</item>

<aantal>3</aantal>

<prijs>4</prijs>

<totaalprijs>12</totaalprijs>

</line>

</document>

</Payload>

<Payload Role="R" id="atom0">

<BOM xmlns="">

<BO>

<AdmInfo>

<Object>17</Object>

<Version>2</Version>

</AdmInfo>

<Documents>

<row>

<CardCode>C20000</CardCode>

<DocDate>20150610</DocDate>

<DocDueDate>20150820</DocDueDate>

<NumAtCard>test 65</NumAtCard>

</row>

</Documents>

<Document_Lines>

<row>

<ItemCode>A00001</ItemCode>

<Quantity>5</Quantity>

<Price>2</Price>

<LineTotal>10</LineTotal>

</row>

<row>

<ItemCode>A00002</ItemCode>

<Quantity>3</Quantity>

<Price>4</Price>

<LineTotal>12</LineTotal>

</row>

</Document_Lines>

</BO>

</BOM>

</Payload>

<Payload Role="R2" Call="object" Type="DIAPI">

<Envelope xmlns="">

<Header>

<Action throwException="true" autoCommit="false">add</Action>

<WritePolicy insert_on_exists="error" update_on_miss="fallback2I" update_policy="regular"/>

</Header>

<Body>

<BOM>

<BO>

<AdmInfo>

<Object>17</Object>

<Version>2</Version>

</AdmInfo>

<Documents>

<row>

<CardCode>C20000</CardCode>

<DocDate>20150610</DocDate>

<DocDueDate>20150820</DocDueDate>

<NumAtCard>test 65</NumAtCard>

</row>

</Documents>

<Document_Lines>

<row>

<ItemCode>A00001</ItemCode>

<Quantity>5</Quantity>

<Price>2</Price>

<LineTotal>10</LineTotal>

</row>

<row>

<ItemCode>A00002</ItemCode>

<Quantity>3</Quantity>

<Price>4</Price>

<LineTotal>12</LineTotal>

</row>

</Document_Lines>

</BO>

</BOM>

</Body>

</Envelope>

</Payload>

</Body>

</Msg>

</vPStatus>

</Payload>

<Payload Role="X" id="atom2"/>

<Payload Role="C" id="atom1" system="0010000107" status="success" b1login="Technical User" method="Synchronous Retrieval" objectid="17" payload="atom2" keyname="DocEntry" keyvalue="488" DIresult="success" DImsg="">

<BOM xmlns="">

<BO>

<AdmInfo>

<Object>17</Object>

</AdmInfo>

<ORDR>...</ORDR>

<RDR1>...</RDR1>

<RDR12>...</RDR12>

<RDR12>...</RDR12>

</BO>

</BOM>

</Payload>

<Payload Role="R" id="atom0" pltype="xml">

<Fileout xmlns="" type="file"/>

</Payload>

<Payload Role="R2">

<Fileout xmlns="" type="file"/>

</Payload>

</Body>

</Msg>

****

I try several dynamic variations for the docentry without results, for example:

 

/vpf:Msg/vpf:Body/vpf:Payload[./@Role='C'][./@id='atom1'][./@objectid='17']./@keyname='DocEntry'][./@DIresult='success']/@DImsg

 

Can you please check or the file is now oke and what the dynamic xpath should be.

 

In the Atom0 transformation (the one who should wirite to the file (outbound xml file) I add the template like below, but I wunder or that will work in this case.

 

********

</xsl:template><xsl:template name="transform">
<xsl:attribute name="pltype">xml</xsl:attribute>
<Fileout xmlns="" type="file">
<xsl:for-each select="$msg/BOM/BO/Document_Lines/*">

        <row>

          <DocNum>

            <xsl:value-of select="$msg/BOM/BO/Documents/row/DocNum"></xsl:value-of>

          </DocNum>

          <CardCode>

            <xsl:value-of select="$msg/BOM/BO/Documents/row/CardCode"></xsl:value-of>

          </CardCode>

          <CardName>

            <xsl:value-of select="$msg/BOM/BO/Documents/row/CardName"></xsl:value-of>

          </CardName>

        </row>

      </xsl:for-each>

    </Fileout>

</xsl:template></xsl:stylesheet>

Re: OrderCreation and OrderConfirmation

$
0
0

Hi,

 

I attached the screenshot of your the inbound message and marked the path:

Capture.PNG

/vpf:Msg/vpf:Body/vpf:Payload[./@Role='S']/vPStatus/vpf:Msg[./@b1status='success']/@b1msg

Just follow the xpath.

 

Best regards

Bastian


Re: B1if for Sales Order import

$
0
0

Hi,

 

To use B1if for the described process above is absolutely feasible.

 

Regarding your questions:

You can either implement a successor step or a new timer-triggered operation to send the information.

This additional integration scenario step could contain a "send email" atom, too.

Put all integration scenario steps in one package.

 

Reading the data via JDBC from this auxiliary database is uncritical, only if you plan to update via JDBC please be sure to fulfill the db's data logic (e.g. B1 company DBs must not be updated via JDBC, use the DI API instead).

 

Best regards

Bastian

Re: How to call external web service using B1if

$
0
0

Hi,

 

please check the B1i online help (Help -> Documents) for documentation.

In 2nd chapter "Scenario Development" you can find information about the usage of the web service call atom (chapter 2.3.9) and how to import an existing WSDL document to provide a xsl transformation atom.

 

Best regards

Bastian

Re: B1if for Sales Order import

$
0
0

Hi Toni,

 

One of the demo video is almost the same what you need.

 

Watch this:

How to build a DB to B1 scenario

 

You can find it on this page. I hope this link works:

SAP Business One - Integration

 

Rgds,

Laszlo

Re: ICO marketing process revise issue

$
0
0

Hi Jane,

 

Editing a marketing document is not allowed in ICO type documents.

The workaround is to cancel the existing document [cancelling SO which will cancel the PO document also] and create a new PO involving the new item.

 

Regards,

Yash

SCC - Document not sychronized

$
0
0

Hi,

 

After posting document in SAP Customer checkout, the document is not synchronized with SAP Business one. Please refer attached status for sychronization.

 

Please advice.

 

Thank you,

Nagarajan

Re: B1if with both B1 MSSQL and B1 HANA

$
0
0

Hi,

 

Is it possible to install B1if, tomcat service to SAP B1 Hana machine (Linux Suse ?) I use SAP B1 9.1 PL 8 HANA version.

or does it have to be installed on windows machine ?

Re: B1if JdbcAdapter LoadJdbcDriverFailureException - Could not find the driver ''

$
0
0

Hi Thomas,

The solution is to check the right SLD sender as wrote Qiola.

 

Thanks,

Lamine


Re: Direction to Create Sales Order in B1 via JSON or XML

Taking Base Document values in File 2 B1 Scenerio

$
0
0

Hi Experts,

 

I am doing Delivery order import in File 2 B1 Scenario. File has the Sales order number. Based on this I need to get the CardCode and Price from Sales Order.  I need your help that how to get the values from Sales Order based on SO Number reference in File.

 

Your help is highly appreciable.

 

Regards,

Senthil

Re: B1if with HANA

$
0
0

Hi Brenden,

 

I use SAP B1 HANA 85.3 Rev installed SBO 9.1 PL 8, I want to activate mobile services B1,

it has to install B1if, so it is confirmed that B1if must installed on separate Windows Machine ? (for HANA) and cannot be installed on the LINUX machine ?

 

And for the installer, I just use 9.1 PL8 Integration service installer that come from B1 right ?

help with the b1Server configuration

$
0
0

Good morning experts,

 

 

 

I'd like to ask you if someone can help me with the b1server configuration, My problem is that after installing, the bases that I created in SAP are not shown. I have tried uninstalling  and then installing once again without success. I Attach an image where you can see that the demous base or others I have created does not appear.
error.png

 

Thanks for your help!

 

Message was edited by: Peter Hartwich

Re: B1if with HANA

$
0
0

Hi Hendra,

 

Yes the B1IF installation is windows based and needs to be installed on a seperate windows server, in the details you specify the HANA server ip just like with SQL.

 

You can just use the integration component installation Packages\B1 Integration Component.

 

Kind Regards,

 

Brenden

Viewing all 973 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>