CRM-- XI-- Webservice

Hi Gurus,
We have a scenario where we need to change or update the customer details from CRM and the same data is changed in the legacy system. 
To achieve this we have pre-existing webservices at the receiver side which will update the legacy system tables. 
For the sender side we have identified a function module BUPA_OUTBOUND_MAIN  which will be used to pass data to XI.
This BUPA_OUTBOUND_MAIN function module has proxy code within it.  We are unable to import this functional module to XI as it is not remote enabled.  Without importing we will not be able to do the mapping and will not be able to generate proxy.
Can anyone suggest how to achieve this scenario using this function module.
Thanks.
Krishnan

hi,
>>>How do we use standard abap proxy. We are unable to import the BUPA_OUTBOUND_MAIN so we will not be able to
proxy is already generated you jut need to import XI content for business partner
from service.sap.com
>>>>Can you please suggest the IDOC for the sending the Business Partner.
at first you need to get familirized with sending IDOCs from CRM
if you just go though CRM550 course you will know everything
if not I suggest getting some help from XI consultants with CRM knowledge
as CRM middleware is not R3 ALE
Regards,
michal
<a href="/people/michal.krawczyk2/blog/2005/06/28/xipi-faq-frequently-asked-questions"><b>XI / PI FAQ - Frequently Asked Questions</b></a>

Similar Messages

  • Creating campaign in Siebel CRM using webservices

    Hi,
    I want to create campaign in Siebel CRM using webservices.
    I am new to siebel platform so I don't have much insight into webservices capabilities.
    Which webservice shall I use to create the campaign .Can anyone please help me on this.
    Thanks

    Hello Sandeep
    SolMan and C4C integration is available for exception management but not for user creation and
    replication into C4C.
    http://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=403572583
    BR
    Prabhat

  • Using Jpublisher to consume CRM OnDemand webservices

    I am attempting to use the Oracle Jpublisher utility to generate a callout to CRM OnDemand webservices, in order to make OnDemand data, such as account data, available for further processing in Oracle Warehouse Builder. (This OWB/Jpublisher solution is documented in Oracle Warehouse Builder: Web Services and SOA Ready):
    [http://www.oracle.com/technology/products/warehouse/pdf/oracle%20warehouse%20builder_%20soa%20and%20web%20services%20ready.pdf]
    I have installed Jpublisher 10.2 on an Oracle 10g database (hosted on a Windows 2003 server) and have attempted to generate a webservice callout by using the -proxywsdl option and referencing the file path where I have stored the OnDemand wsdl files (downloaded from OnDeman webservices admin).
    The following command returns the message "No files written"
    jpub -u owb_wkspace_user/password -sysuser sys/password
    -proxywsdl=file:///C:/Account.wsdl
    -proxyopts=tabfun
    Using the noload option to avoid any contention with database user permissions returns the same result: "No files written".
    jpub -proxywsdl=file:///C:/Account.wsdl -proxyopts=tabfun,noload
    If there are any Jpublisher-savy OnDemand integrators out there who can shed some light on the process, I'd greatly appreciate it.

    Just curious if anyone has come up with a solution to the posed problem. I too am looking at using database web services to access siebal information through siebal on demand api's. Right now I am investigating how to accomplish the session authentication within a database web service. Any thoughts or ideas are welcome.

  • Upload data from Excel into SAP CRM using webservices

    Hi,
               I want to upload the data from EXCEL into SAP CRM using a web  service, can anyone say me the process and also how to map the excel and the source code structures.
    Thanks,
    Sanju.

    Try the following :
    Class: CL_GUI_FRONTEND_SERVICES
    Method: GUI_UPLOAD
    Thanks
    <b>Allot points if this helps!</b>

  • Retive all optionset values in CRM 2013 webservices

    Hi ALl,
    Please share the code for retrivign all optionset values in crm 2013.

    Hi,
    Do you want to retrieve it from C# or javascript?
    Here is from C# Get OptionSet /Global OptionSet Text For Given Value From C#
    Here is from Javascript CRM 2011/2013 Get Global OptionSet Values from Javascript
    If you find this post helpful then please Vote as Helpful and Mark As Answer. Thanks and Regards, Polat Aydın
    My blog

  • Access CRM through webservice

    Hi guys,
    An external system is trying to access the SAP CRM Server and the error shown at their end  is as given below :
    “The server committed a protocol violation. Section=ResponseHeader Detail=CR must be followed by LF”
    Any idea how we can resolve this from SAP side?

    Hi Souvik
    I heard that adding the following to a default app.config works
    <system.net>
    <settings>
    <httpWebRequest useUnsafeHeaderParsing="true" />
    </settings>
    </system.net>
    Belinda

  • Dynamic CRM 2013 Online how to execute Report, generate PDF and email

    Dear All,
    I am using Dynamic CRM 2013 online. For quote, I have workflow and Dialogue processes for review process. On approval, I want the system to generate a PDF of quote report, attach the PDF and email it to the Customer.
    Better I would like, When approver, clicks on the approve button, the system should auto generate a PDF of quote report, attach the PDF and email it to the Customer, without any further input from the user. If its not possible, I may have to put button on
    quote form.
    I am using the attached code, but facing various issues.
    1. Under prepare the SOAP Message coding part, I am not sure what should be the below URL for CRM 2013 Online?
    xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    2. What should be the emailid here? Is it Recepient Contact id(Guid) ?
    var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
    alert("emailid" + emailid.toString());
    3. Using this code, not able to create Entity for "ActivityMimeAttachment", I am getting newEntity as undefined.
    Below is the code I am using. Please check and help me out, where I am going wrong. Let me know if any better way to implement it. At present, I have put one button on quote form, on click event, below code will get executed.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <script type="text/javascript">
    var Xrm;
    if (window.opener) { Xrm = window.opener.Xrm; }
    else if (window.parent) { Xrm = window.parent.Xrm; }
    function getReportingSession() {
    var reportName = "Quotation_Report"; //set this to the report you are trying to download
    var reportId = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
    var recordid = Xrm.Page.data.entity.getId();
    // recordid = recordid.substring(1, 37); //getting rid of curly brackets
    alert(recordid);
    var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
    var retrieveEntityReq = new XMLHttpRequest();
    retrieveEntityReq.open("POST", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    retrieveEntityReq.send("id=%7B" + reportId + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" + reportName + "&isScheduledReport=false");
    var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
    var ret = new Array();
    ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
    x = retrieveEntityReq.responseText.indexOf("ControlID=");
    ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
    return ret;
    function createEntity(ent, entName, upd) {
    var jsonEntity = JSON.stringify(ent);
    var createEntityReq = new XMLHttpRequest();
    var ODataPath = Xrm.Page.context.getServerUrl() + "XRMServices/2011/OrganizationData.svc";
    createEntityReq.open("POST", ODataPath + "/" + entName + "Set" + upd, false);
    createEntityReq.setRequestHeader("Accept", "application/json");
    createEntityReq.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    createEntityReq.send(jsonEntity);
    var newEntity = JSON.parse(createEntityReq.responseText).d;
    alert("new entity" + newEntity);
    return newEntity;
    function createAttachment() {
    var params = getReportingSession();
    var recordid = Xrm.Page.data.entity.getId();
    alert("recordid " + recordid);
    var orgName = Xrm.Page.context.getOrgUniqueName();
    var userID = Xrm.Page.context.getUserId();
    //create email record
    // Prepare the SOAP message.
    var xml = "<?xml version='1.0' encoding='utf-8'?>" +"<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'" +
    " xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'" +
    " xmlns:xsd='http://www.w3.org/2001/XMLSchema'>" +
    "<soap:Header>" +
    "</soap:Header>" +
    "<soap:Body>" +
    "<Create xmlns='http://schemas.microsoft.com/crm/2007/WebServices'>" +
    "<entity xsi:type='email'>" +
    "<regardingobjectid type='quote'>" + recordid + "</regardingobjectid>" +
    "<subject>" + "Email with Attachment4" + "</subject>" +
    "</entity>" +
    "</Create>" +
    "</soap:Body>" +
    "</soap:Envelope>";
    // Prepare the xmlHttpObject and send the request.
    var xHReq = new ActiveXObject("Msxml2.XMLHTTP");
    xHReq.Open("POST", "/mscrmservices/2007/CrmService.asmx", false);
    xHReq.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/crm/2007/WebServices/Create");
    xHReq.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    xHReq.setRequestHeader("Content-Length", xml.length);
    xHReq.send(xml);
    // Capture the result
    var resultXml = xHReq.responseXML;
    // alert("resultXml " + resultXml);
    // Check for errors.
    var errorCount = resultXml.selectNodes('//error').length;
    if (errorCount != 0) {
    alert("ERROR");
    var msg = resultXml.selectSingleNode('//description').nodeTypedValue;
    alert(msg);
    var emailid = resultXml.selectSingleNode("//CreateResult").nodeTypedValue;
    alert("emailid" + emailid.toString());
    //var emailid = userID;
    var post = Object();
    post.Body = encodePdf(params);
    var email = new Array();
    email[0] =new Object();
    email[0].id = emailid;
    email[0].entityType ='email';
    post.Subject ="File Attachment";
    post.AttachmentNumber = 1;
    post.FileName ="Report.pdf";
    post.MimeType ="application/pdf";
    post.ObjectId = Object();
    post.ObjectId.LogicalName ="email";
    post.ObjectId.Id = email[0].id;
    post.ObjectTypeCode ="email";
    alert(post.ObjectId.Id);
    createEntity(post,"ActivityMimeAttachment", "");
    alert("created successfully");
    email.Subject = "Your Order";
    //Set The current order as the Regarding object
    email.RegardingObjectId = {
    Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
    LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
    //Create Email Activity
    SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
    // Email Call Back function
    function EmailCallBack(result) {
    email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
    var activityPartyFrom = new Object();
    // Set the From party of the ActivityParty to relate an entity with Email From field
    activityPartyFrom.PartyId = {
    Id: customerId, // id of entity you want to associate this activity with.
    LogicalName: "contact"
    // Set the "activity" of the ActivityParty
    activityPartyFrom.ActivityId = {
    Id: result.ActivityId,
    LogicalName: "email"
    // Now set the participation type that describes the role of the party on the activity).
    activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
    // Create the from ActivityParty for the email
    SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
    var activityPartyTo = new Object();
    // Set the From party of the ActivityParty to relate an entity with Email From field
    activityPartyTo.PartyId = {
    Id: ownerId, // id of entity you want to associate this activity with.
    LogicalName: "systemuser"
    // Set the "activity" of the ActivityParty
    activityPartyTo.ActivityId = {
    Id: result.ActivityId,
    LogicalName: "email"
    // Now set the participation type that describes the role of the party on the activity). activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
    // Create the from ActivityParty
    SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
    //ActivityParty From Callback
    function ActivityPartyFromCallBack(result) {
    //ActivityParty To Callback
    function ActivityPartyToCallBack(result) {
    var StringMaker = function () {
    this.parts = [];
    this.length = 0;
    this.append = function (s) {
    this.parts.push(s);
    this.length += s.length;
    this.prepend = function (s) {
    this.parts.unshift(s);
    this.length += s.length;
    this.toString = function () {
    return this.parts.join('');
    var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function encode64(input) {
    var output = new StringMaker();
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;
    while (i < input.length) {
    chr1 = input[i++];
    chr2 = input[i++];
    chr3 = input[i++];
    enc1 = chr1 >> 2;
    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
    enc4 = chr3 & 63;
    if (isNaN(chr2)) {
    enc3 = enc4 = 64;
    else if (isNaN(chr3)) {
    enc4 = 64;
    output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
    return output.toString();
    var bdy = new Array();
    var bdyLen = 0;
    function concat2Bdy(x) {
    bdy[bdyLen] = x;
    bdyLen++;
    function encodePdf(params) {
    bdy = new Array();
    bdyLen = 0;
    var retrieveEntityReq = new XMLHttpRequest();
    var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] + "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] + "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
    retrieveEntityReq.open("GET", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.send();
    BinaryToArray(retrieveEntityReq.responseBody);
    return encode64(bdy);
    </SCRIPT>
    <SCRIPT type=text/vbscript>
    Function BinaryToArray(Binary)
    Dim i
    ReDim byteArray(LenB(Binary))
    For i = 1 To LenB(Binary)
    byteArray(i-1) = AscB(MidB(Binary, i, 1))
    concat2Bdy(AscB(MidB(Binary, i, 1)))
    Next
    BinaryToArray = byteArray
    End Function
    </SCRIPT>
    </head>
    <body>
    <input type="button" onclick="createAttachment();" value="Attach Report" />
    </body>
    </html>
    Thanks. and waiting for your valuable comments.
    - Mittal

    Hello,
    Yes, I was able to make my code working as below. Tested on CRM online 2013.
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
    <script type="text/javascript">
    if (typeof (SDK) == "undefined")
    { SDK = { __namespace: true }; }
    SDK.JScriptRESTDataOperations = {
    _context: function () {
    if (typeof GetGlobalContext != "undefined")
    { return GetGlobalContext(); }
    else {
    if (typeof Xrm != "undefined") {
    return Xrm.Page.context;
    else { return new Error("Context is not available."); }
    _getServerUrl: function () {
    var serverUrl = this._context().getServerUrl()
    if (serverUrl.match(/\/$/)) {
    serverUrl = serverUrl.substring(0, serverUrl.length - 1);
    return serverUrl;
    _ODataPath: function () {
    return this._getServerUrl() + "/XRMServices/2011/OrganizationData.svc/";
    _errorHandler: function (req) {
    return new Error("Error : " +
    req.status + ": " +
    req.statusText + ": " +
    JSON.parse(req.responseText).error.message.value);
    _dateReviver: function (key, value) {
    var a;
    if (typeof value === 'string') {
    a = /Date\(([-+]?\d+)\)/.exec(value);
    if (a) {
    return new Date(parseInt(value.replace("/Date(", "").replace(")/", ""), 10));
    return value;
    Create: function (object, type, successCallback, errorCallback) {
    var req = new XMLHttpRequest();
    req.open("POST", this._ODataPath() + type + "Set", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 201) {
    successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send(JSON.stringify(object));
    Retrieve: function (id, type, successCallback, errorCallback) {
    var req = new XMLHttpRequest();
    req.open("GET", this._ODataPath() + type + "Set(guid'" + id + "')", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 200) {
    successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d);
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send();
    Update: function (id, object, type, successCallback, errorCallback) {
    var req = new XMLHttpRequest();
    req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("X-HTTP-Method", "MERGE");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 204 || this.status == 1223) {
    successCallback();
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send(JSON.stringify(object));
    Delete: function (id, type, successCallback, errorCallback) {
    var req = new XMLHttpRequest();
    req.open("POST", this._ODataPath() + type + "Set(guid'" + id + "')", true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("X-HTTP-Method", "DELETE");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 204 || this.status == 1223) {
    successCallback();
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send();
    RetrieveMultiple: function (type, filter, successCallback, errorCallback) {
    if (filter != null) {
    filter = "?" + filter;
    else { filter = ""; }
    var req = new XMLHttpRequest();
    req.open("GET", this._ODataPath() + type + "Set" + filter, true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
    if (this.readyState == 4 /* complete */) {
    if (this.status == 200) {
    successCallback(JSON.parse(this.responseText, SDK.JScriptRESTDataOperations._dateReviver).d.results);
    else {
    errorCallback(SDK.JScriptRESTDataOperations._errorHandler(this));
    req.send();
    __namespace: true
    </script>
    <script type="text/javascript">
    //Create Email and link it with Order as Regarding field
    var Xrm;
    var email = new Object();
    var ownerID = "";
    var CustomerId = "";
    if (window.opener) { Xrm = window.opener.Xrm; }
    else if (window.parent) { Xrm = window.parent.Xrm; }
    //Get ownerid who send email of quotation to customer
    function GetOwnerID() {
    var owner = Xrm.Page.getAttribute("ownerid").getValue();
    ownerID = owner[0].id;
    var ownerName = owner[0].name;
    var entityType = owner[0].entityType;
    GetToEmailGUID();
    //Get customerid who receive email of quotation from owner
    function GetToEmailGUID() {
    var Customer = Xrm.Page.getAttribute('customerid').getValue();
    CustomerId = Customer[0].id;
    var CustomerName = Customer[0].name;
    var entityType = Customer[0].entityType;
    //if CustomerId is type of "Account" then get Primary Contact id of that account
    if (entityType == "account") {
    var contact = Xrm.Page.getAttribute("customerid").getValue();
    if (contact === null) return;
    var serverUrl = Xrm.Page.context.getClientUrl();
    var oDataSelect = serverUrl + "/XRMServices/2011/OrganizationData.svc/AccountSet(guid'" + contact[0].id + "')?$select=PrimaryContactId";
    var req = new XMLHttpRequest();
    req.open("GET", oDataSelect, false);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json;charset=utf-8");
    req.onreadystatechange = function () {
    if (req.readyState === 4) {
    if (req.status === 200) {
    var retrieved = JSON.parse(req.responseText).d;
    CustomerId = retrieved.PrimaryContactId.Id;
    else {
    alert(this.statusText);
    req.send();
    function CreateEmail() {
    GetOwnerID();
    email.Subject = "Email with Report Attachment";
    //Set The current order as the Regarding object
    email.RegardingObjectId = {
    Id: Xrm.Page.data.entity.getId(), //Get the current entity Id , here OrderId
    LogicalName: Xrm.Page.data.entity.getEntityName()//Get the current entity name, here it will be “salesOrder”
    //Create Email Activity
    SDK.JScriptRESTDataOperations.Create(email, "Email", EmailCallBack, function (error) { alert(error.message); });
    // Email Call Back function
    function EmailCallBack(result) {
    email = result; // Set the email to result to use it later in email attachment for retrieving activity Id
    var activityPartyFrom = new Object();
    // Set the From party of the ActivityParty to relate an entity with Email From field
    activityPartyFrom.PartyId = {
    Id: CustomerId, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
    LogicalName: "contact"
    // Set the "activity" of the ActivityParty
    activityPartyFrom.ActivityId = {
    Id: result.ActivityId,
    LogicalName: "email"
    // Now set the participation type that describes the role of the party on the activity).
    activityPartyFrom.ParticipationTypeMask = { Value: 2 }; // 2 means ToRecipients
    // Create the from ActivityParty for the email
    SDK.JScriptRESTDataOperations.Create(activityPartyFrom, "ActivityParty", ActivityPartyFromCallBack, function (error) { alert(error.message); });
    var activityPartyTo = new Object();
    // Set the From party of the ActivityParty to relate an entity with Email From field
    activityPartyTo.PartyId = {
    Id: ownerID, //"79EBDD26-FDBE-E311-8986-D89D6765B238", // id of entity you want to associate this activity with.
    LogicalName: "systemuser"
    // Set the "activity" of the ActivityParty
    activityPartyTo.ActivityId = {
    Id: result.ActivityId,
    LogicalName: "email"
    // Now set the participation type that describes the role of the party on the activity).
    activityPartyTo.ParticipationTypeMask = { Value: 1 }; // 1 means Sender
    // Create the from ActivityParty
    SDK.JScriptRESTDataOperations.Create(activityPartyTo, "ActivityParty", ActivityPartyToCallBack, function (error) { alert(error.message); });
    //ActivityParty From Callback
    function ActivityPartyFromCallBack(result) {
    //ActivityParty To Callback
    function ActivityPartyToCallBack(result) {
    GetReportId('Quotation');
    //Create attachment for the created email
    function CreateEmailAttachment() {
    //get reporting session and use the params to convert a report in PDF
    var params = getReportingSession();
    //Email attachment parameters
    var activitymimeattachment = Object();
    activitymimeattachment.ObjectId = Object();
    activitymimeattachment.ObjectId.LogicalName = "email";
    activitymimeattachment.ObjectId.Id = email.ActivityId;
    activitymimeattachment.ObjectTypeCode = "email",
    activitymimeattachment.Subject = "File Attachment";
    activitymimeattachment.Body = encodePdf(params);
    activitymimeattachment.FileName = "Report.pdf";
    activitymimeattachment.MimeType = "application/pdf";
    //Attachment call
    SDK.JScriptRESTDataOperations.Create(activitymimeattachment, "ActivityMimeAttachment", ActivityMimeAttachmentCallBack, function (error) { alert(error.message); });
    //ActivityMimeAttachment CallBack function
    function ActivityMimeAttachmentCallBack(result) {
    var features = "location=no,menubar=no,status=no,toolbar=no,resizable=yes";
    var width = "800px";
    var height = "600px";
    window.open(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", features);
    // To open window which works in outlook and IE both
    //openStdWin(Xrm.Page.context.getServerUrl() + "main.aspx?etc=" + 4202 + "&pagetype=entityrecord&id=" + email.ActivityId, "_blank", width, height, features);
    //This method will get the reportId based on a report name that will be used in getReportingSession() function
    function GetReportId(reportName) {
    var oDataSetName = "ReportSet";
    var columns = "ReportId";
    var filter = "Name eq '" + reportName + "'";
    retrieveMultiple(oDataSetName, columns, filter, onSuccess);
    function retrieveMultiple(odataSetName, select, filter, successCallback) {
    var serverUrl = Xrm.Page.context.getServerUrl();
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
    var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?";
    if (select) {
    odataUri += "$select=" + select + "&";
    if (filter) {
    odataUri += "$filter=" + filter;
    $.ajax({
    type: "GET",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: odataUri,
    beforeSend: function (XMLHttpRequest) {
    XMLHttpRequest.setRequestHeader("Accept", "application/json");
    success: function (data) {
    if (successCallback) {
    if (data && data.d && data.d.results) {
    successCallback(data.d.results);
    else if (data && data.d) {
    successCallback(data.d);
    else {
    successCallback(data);
    error: function (XmlHttpRequest, errorThrown) {
    if (XmlHttpRequest && XmlHttpRequest.responseText) {
    alert("Error while retrieval ; Error – " + XmlHttpRequest.responseText);
    function onSuccess(data) {
    reportId = data[0].ReportId.replace('{', ").replace('}', ");
    CreateEmailAttachment(); // Create Email Attachment
    //Gets the report contents
    function getReportingSession() {
    var pth = Xrm.Page.context.getServerUrl() + "/CRMReports/rsviewer/reportviewer.aspx";
    var retrieveEntityReq = new XMLHttpRequest();
    var Id = Xrm.Page.data.entity.getId();
    var quotationGUID = Id.replace('{', ""); //set this to selected quotation GUID
    quotationGUID = quotationGUID.replace('}', "");
    var reportName = "Quotation"; //set this to the report you are trying to download
    var reportID = "7C39D18F-1DC6-E311-8986-D89D6765B238"; //set this to the guid of the report you are trying to download
    var rptPathString = ""; //set this to the CRMF_Filtered parameter
    var strParameterXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false'><entity name='quote'><all-attributes /><filter type='and'><condition attribute='quoteid' operator='eq' uitype='quote' value='" + quotationGUID + "' /> </filter></entity></fetch>";
    retrieveEntityReq.open("POST", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    rptPathString = "id=%7B" + reportID + "%7D&uniquename=" + Xrm.Page.context.getOrgUniqueName() + "&iscustomreport=true&reportnameonsrs=&reportName=" +
    reportName + "&isScheduledReport=false&p:CRMAF_Filteredquote=" + strParameterXML;
    //remove the part starting from &p:salesorderid if your report has no parameters
    retrieveEntityReq.send(rptPathString);
    var x = retrieveEntityReq.responseText.indexOf("ReportSession=");
    var ret = new Array();
    ret[0] = retrieveEntityReq.responseText.substr(x + 14, retrieveEntityReq.responseText.indexOf("&", x) - x - 14); //the session id
    x = retrieveEntityReq.responseText.indexOf("ControlID=");
    ret[1] = retrieveEntityReq.responseText.substr(x + 10, retrieveEntityReq.responseText.indexOf("&", x) - x - 10); //the control id
    return ret;
    var bdy = new Array();
    var bdyLen = 0;
    function concat2Bdy(x) {
    bdy[bdyLen] = x;
    bdyLen++;
    function encodePdf(params) {
    bdy = new Array();
    bdyLen = 0;
    var retrieveEntityReq = new XMLHttpRequest();
    var pth = Xrm.Page.context.getServerUrl() + "/Reserved.ReportViewerWebControl.axd?ReportSession=" + params[0] +
    "&Culture=1033&CultureOverrides=True&UICulture=1033&UICultureOverrides=True&ReportStack=1&ControlID=" + params[1] +
    "&OpType=Export&FileName=Public&ContentDisposition=OnlyHtmlInline&Format=PDF";
    retrieveEntityReq.open("GET", pth, false);
    retrieveEntityReq.setRequestHeader("Accept", "*/*");
    retrieveEntityReq.send();
    BinaryToArray(retrieveEntityReq.responseBody);
    return encode64(bdy);
    var StringMaker = function () {
    this.parts = [];
    this.length = 0;
    this.append = function (s) {
    this.parts.push(s);
    this.length += s.length;
    this.prepend = function (s) {
    this.parts.unshift(s);
    this.length += s.length;
    this.toString = function () {
    return this.parts.join('');
    var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    function encode64(input) {
    var output = new StringMaker();
    var chr1, chr2, chr3;
    var enc1, enc2, enc3, enc4;
    var i = 0;
    while (i < input.length) {
    chr1 = input[i++];
    chr2 = input[i++];
    chr3 = input[i++];
    enc1 = chr1 >> 2;
    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
    enc4 = chr3 & 63;
    if (isNaN(chr2)) {
    enc3 = enc4 = 64;
    } else if (isNaN(chr3)) {
    enc4 = 64;
    output.append(keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4));
    return output.toString();
    </script>
    <script type="text/vbscript">
    Function BinaryToArray(Binary)
    Dim i
    ReDim byteArray(LenB(Binary))
    For i = 1 To LenB(Binary)
    byteArray(i-1) = AscB(MidB(Binary, i, 1))
    concat2Bdy(AscB(MidB(Binary, i, 1)))
    Next
    BinaryToArray = byteArray
    End Function
    </script>
    </head>
    <body>
    <input type="button" onclick="CreateEmail();" value="Attach Report" />
    </body>
    </html>
    Thank you,
    Mittal.

  • CRM Funtion Module to update customer

    Hi,
    My scenario is CRM>XI>Webservice (Async). The customer has their own home grown legacy system where they maintain the customer data (master & transactional).
    CRM IC Webclient is used as front end. There is a minimal amount of data that has been replicated from the legacy to CRM system like the customer info and etc. The user will change the CustomerName & Address in the CRM system and upon submit it has to go via XI and call a pre-existing webservice which inturn will update the customer system.
    As we want to accomplish this scenario out-of-the-box are there any standard IDOCs or RFCs or BAPIs available in the CRM system. If so please give the name of the module.
    Thanks in advance.
    Krishnan

    Hi Krishnan,
    As you are saying that you have XI adaptor configured, please make necessary configuration and developments in XI.
    1 Create proper data type in XI which holds the same input common between XI and CRM.
    2 assign data type to message type in XI.
    3 assign message type interface type in XI.
    4.Configure and open the communication channels between XI and CRM.
    All these things shud be done at XI side and preferably an XI resource would do this.
    Once this is done or already done, you will have a proxy associated to this particular interface in CRM ...Inside this proxy you will have to develop and built this proxy( write the code for calling FM CRMXIF_PARTNER_SAVE) which will be triggered to XI as an output message.
    Siva

  • Hosting and scheduling a webservice code

    Hi
    I need to write code that will generate tasks in Oracle CRM On Demand for new opportunities. Workflow is not sufficient for this specific job, so I am thinking of a webservice that will login every X minutes, collect the relevant data and will create the necessary tasks (activities) accordingly. Assuming we can handle the syntax, we are still not sure about the best way to host this code and how to schedule it. Any recommendations?
    Thanks,
    Boaz

    Hi !
    This task has to be developed with CRM OnDemand WebServices, whatever the technology (PHP, Java, .NET...). And you'll have to host this kind of program somewhere in your information system. Then, with the Windows OS, just create a new Scheduled Task thqt will run your program when you want. With Mac OS, you'll have to use cron jobs.
    Your program will look like :
    1 - CRMOD login
    2 - OpportunityQueryPage with your parameters
    3 - For each opportunity, ActivityInsert with your parameters
    4 - CRMOD logoff
    Hope this will help, feel free to ask more !
    Max

  • CRM Genesys CAD Query

    Hi All,
    We have a CRM 7.0  Genesys CTI/IVR collecting CAD data e.g Contract Number.
    Based on the contract number we want the CTI to authenticate the caller eg by asking the PIN and veryfiying this against the stored PIN in CRM.
    How do I go about doing this? If you can provide detailed steps that will be much appreciated.
    Regards
    Sam

    Hi Sam,
    Lets take this process step by step.
    Step 1. A caller calls and the call lands onto IVRS.
    Step 2. The caller is asked set of question on IVRS. say he is asked to enter Contract number.
    Step 3. The IVRS may ask to enter the PIN.
    UPTIL NOW ALL INFORMATION IS PRESENT ON IVRS NOT ON GENESYS.
    As Genesys is only connecting IVRS+Contact center to SAP CRM IC. So no CAD comes into picture.
    Step 4. in CRM a webservice can be created and provided to IVRS application to consume it.
    This webservice will have input parameter here in your case as Contract number and PIN.
    And return parameters as 0 or 1 which may be understood by IVRS application as Valid or Invalid.
    This webservice hits CRM system with input parameters, process the information recieved as input and provides a return parameter
    which is used by IVRS.
    Step 5. The IVRS system once gets this response will know the whether the contract id and PIN are valid. So it can announce to the caller if the indormation entered is not correct or pass the information to genesys and further to CRM Ic agent.
    ALTERNATIVELY..
    You can  have a Database maintained at IVRS level. Such that this data base will be updated daily batch by CRM for new contract ids and PINS.
    So the IVRS application can query in this database and validate the contract id and PIN data.
    This process will be more quicker and efficient if handling large data.
    Hope this helps you.
    Cheers,
    Vivek

  • Binding very complex XML data in DataGrid

    So here is an Xml i retrieve from webservice. And as you can
    see it uses namespaces and so on... So there ar some
    <q1:StatusOption> tags in here, and i need their props to be
    bind in DataGrid with columns OptionValue, Description, State...
    I've tried many ways but with no success. Please help! And if it's
    possible without arrays. Thanks.
    <RetrieveAttributeMetadataResponse xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="
    http://www.w3.org/2001/XMLSchema"
    xmlns:soap="
    http://schemas.xmlsoap.org/soap/envelope/"
    xmlns="
    http://schemas.microsoft.com/crm/2006/WebServices">
    <RetrieveAttributeMetadataResult
    xsi:type="q1:StatusAttributeMetadata" xmlns:q1="
    http://schemas.microsoft.com/crm/2006/Metadata">
    <q1:Name>statuscode</q1:Name>
    <q1:Type>Status</q1:Type>
    <q1:DisplayName>Status</q1:DisplayName>
    <q1:Description>Reason for the status of the
    contact.</q1:Description>
    <q1:IsCustomField>false</q1:IsCustomField>
    <q1:RequiredLevel>None</q1:RequiredLevel>
    <q1:DefaultValue
    xsi:type="xsd:int">-1</q1:DefaultValue>
    <q1:ValidForCreate>true</q1:ValidForCreate>
    <q1:ValidForRead>true</q1:ValidForRead>
    <q1:ValidForUpdate>true</q1:ValidForUpdate>
    <q1:DisplayMask>ValidForAdvancedFind ValidForForm
    ValidForGrid</q1:DisplayMask>
    <q1:NextValue>3</q1:NextValue>
    <q1:Options>
    <q1:StatusOption>
    <q1:OptionValue>1</q1:OptionValue>
    <q1:Description>Active</q1:Description>
    <q1:State>0</q1:State>
    </q1:StatusOption>
    <q1:StatusOption>
    <q1:OptionValue>2</q1:OptionValue>
    <q1:Description>Not active</q1:Description>
    <q1:State>1</q1:State>
    </q1:StatusOption>
    </q1:Options>
    </RetrieveAttributeMetadataResult>
    </RetrieveAttributeMetadataResponse>

    I found an answer on the other forum. Check this out :)
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="
    http://www.adobe.com/2006/mxml"
    layout="absolute" creationComplete="onCreationComplete()">
    <mx:Script>
    <![CDATA[
    private var myxml:XML =
    <RetrieveAttributeMetadataResponse xmlns:xsi="
    http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="
    http://www.w3.org/2001/XMLSchema"
    xmlns:soap="
    http://schemas.xmlsoap.org/soap/envelope/"
    xmlns="
    http://schemas.microsoft.com/crm/2006/WebServices">
    <RetrieveAttributeMetadataResult
    xsi:type="q1:StatusAttributeMetadata" xmlns:q1="
    http://schemas.microsoft.com/crm/2006/Metadata">
    <q1:Name>statuscode</q1:Name>
    <q1:Type>Status</q1:Type>
    <q1:DisplayName>Status</q1:DisplayName>
    <q1:Description>Reason for the status of the
    contact.</q1:Description>
    <q1:IsCustomField>false</q1:IsCustomField>
    <q1:RequiredLevel>None</q1:RequiredLevel>
    <q1:DefaultValue
    xsi:type="xsd:int">-1</q1:DefaultValue>
    <q1:ValidForCreate>true</q1:ValidForCreate>
    <q1:ValidForRead>true</q1:ValidForRead>
    <q1:ValidForUpdate>true</q1:ValidForUpdate>
    <q1:DisplayMask>ValidForAdvancedFind ValidForForm
    ValidForGrid</q1:DisplayMask>
    <q1:NextValue>3</q1:NextValue>
    <q1:Options>
    <q1:StatusOption>
    <q1:OptionValue>1</q1:OptionValue>
    <q1:Description>Active</q1:Description>
    <q1:State>0</q1:State>
    </q1:StatusOption>
    <q1:StatusOption>
    <q1:OptionValue>2</q1:OptionValue>
    <q1:Description>Not active</q1:Description>
    <q1:State>1</q1:State>
    </q1:StatusOption>
    </q1:Options>
    </RetrieveAttributeMetadataResult>
    </RetrieveAttributeMetadataResponse>;
    private function onCreationComplete():void
    var result:XMLList = myxml..*::StatusOption;
    dg1.dataProvider = result;
    private function getAttributeValue(item:Object,
    column:DataGridColumn):String
    var xmlList:XMLList = XML(item).child(new QName("
    http://schemas.microsoft.com/crm/2006/Metadata",column.dataField));
    return xmlList[0].toString();
    ]]>
    </mx:Script>
    <mx:DataGrid id="dg1"
    labelFunction="getAttributeValue">
    <mx:columns>
    <mx:DataGridColumn dataField="OptionValue"/>
    <mx:DataGridColumn dataField="Description" />
    <mx:DataGridColumn dataField="State" />
    </mx:columns>
    </mx:DataGrid>
    </mx:Application>

  • Soap Header information

    Hi All,
    We are doing a CRM->XI->webservice(SOAP) scenario. I need to put in 2 headers in the SOAP envelope. The 2 headers are like identfiers (eg: trading partner). Is it enough if I set this in the adapter configuration Variable Header Name? If so How do I set the values.?
    For example: If need to set tradingpartner = “Dell” in the header of the SOAP envelope, how can I go about setting this?
    Thanks,
    Teresa

    Hi,
    You will have to create the SOAP envelope manually in your mapping!
    1. In the receiver SOAP adapter , select the option ,  "<b>Do Not Use SOAP Envelope."</b> When you select this option, the SOAP adapter will not embed your XML message with the SOAP envelope. Instead, it will expect the output of the mapping to have the SOAP envelope.
    2. Now, use a Java or XSL mapping and create the entire SOAP message out of your mapping. JAVa and XSL mapping do not validate the target message against the XSD.
    Regards
    Bhavesh

  • Asynchronous call with soap adapter?

    Hi All
    I Scenario status update in CRm using Webservice using SOAP adapetr. when i am testing in ALTOVA SPy when i send response it successfully updates status , it also send back message
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP:Header/>
       <SOAP:Body/>
    </SOAP:Envelope>
    But my interface is Asynchronus, My communication channel Quality of service is set to : Exactly once .
    when i am creating webservice i using following url
    http://xx.xx.xxx.xx:port/XISOAPAdapter/MessageServlet?channel=:service:sendercommunication channle &ProcessingMode=Asynchronous&QualityOfService= Exactly Once
    How can i avoid response back.
    Thanks
    Babu
    Edited by: babloo babu on Dec 16, 2009 2:03 PM

    Hi Babu,
    That is the problem with AltovaXMLSPY, it always expect a resonse..and if don't get one it will shown empty headers..
    check moni and see if you have only one entry then your scenario is working and it is working in async mode
    Regards
    Suraj

  • Need Help: Not able to invoke fusion crm webservice using SOAP UI

    Hi,
    I am trying to invoke fusion crm webservice by using SOAP UI, but I am getting Invalid seccurity tocken exception.
    I have followed below steps specified in the oracle support document.
    In Soap UI, Go to File>Preferences ,select the "HTTP Settings' tab on the lower left panel, then select the checkbox 'Authenticate Preemtively'.
    2. From the wsdl extract the content from above wsdl between the tag/elements <dsig:X509Certificate> and </dsig:X509Certificate>
    3. Create a file called certificate.cer ( in local Drive) with above encrypted data enclosed between -----BEGIN CERTIFICATE-----   and -----END CERTIFICATE-----, file content shown below ( note: encrypted data 
        for example
        -----BEGIN CERTIFICATE-----
    MIICCzCCAXSgAwIBAgIETy
        -----END CERTIFICATE-----
    4. Identifiy the java.home of SOAP UI , navigation (Help – System Properties) ,example ( it may be something like D:\SOAP UI download\soapui-4.5.1\jre)
    5.  Find the location of cacert file in SOAP UI ( example D:\SOAP UI download\soapui-4.5.1\jre\lib\security\cacert)
    6. Use following keytool command to add the certificate file certificate.cer into keystore cacert , sample command given below for reference
       keytool -importcert -alias rcpt-key-alias -file "D:\certificate.cer" -keystore "D:\SOAP UI download\soapui-4.5.1\jre\lib\security\cacerts"
       at command prompt when prompted enter password as changeit
    7. Restart SOAP UI and create a new project with https version of WSDL of organizationService
    8. In SOAP UI ,  in Auth tab , provide the user name and password.
    9. Invoke the Webservice
    I have used following request XML in SOAP UI
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/sales/opptyMgmt/opportunities/opportunityService/types/" xmlns:opp="http://xmlns.oracle.com/apps/sales/opptyMgmt/opportunities/opportunityService/" xmlns:rev="http://xmlns.oracle.com/apps/sales/opptyMgmt/revenues/revenueService/" xmlns:not="http://xmlns.oracle.com/apps/crmCommon/notes/noteService" xmlns:not1="http://xmlns.oracle.com/apps/crmCommon/notes/flex/noteDff/" xmlns:rev1="http://xmlns.oracle.com/oracle/apps/sales/opptyMgmt/revenues/revenueService/" xmlns:act="http://xmlns.oracle.com/apps/crmCommon/activities/activitiesService/" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:soap="soap" xmlns:ns1="http://xmlns.oracle.com/apps/fnd/soaprovider/plsql/fnd_user_pkg/">
       <soapenv:Header>
          <fmw-context xmlns="http://xmlns.oracle.com/fmw/context/1.0"/>
          <wsse:Security soap:mustUnderstand="1">
             <wsse:UsernameToken>
                <wsse:Username>userName</wsse:Username>
                <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
             </wsse:UsernameToken>
          </wsse:Security>
       </soapenv:Header>
       <soapenv:Body>
          <typ:createOpportunity>
             <typ:opportunity>
                <opp:BudgetedFlag>1</opp:BudgetedFlag>
             </typ:opportunity>
          </typ:createOpportunity>
       </soapenv:Body>
    </soapenv:Envelope>
    It would be great help if someone guide me on this...
    Thanks & Regards
    Samanta Mishra

    For reference here is an example of a SOAP envelope I commonly use with SOAP UI to "query" employee data from HCM:
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://xmlns.oracle.com/apps/hcm/employment/core/workerService/types/" xmlns:typ1="http://xmlns.oracle.com/adf/svc/types/">
        <soapenv:Header>
            <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
                <wsse:UsernameToken wsu:Id="UsernameToken-2" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                    <wsse:Username>username</wsse:Username>
                    <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">password</wsse:Password>
                    <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">jwCzGGijT90Wml6eZe4cxg==</wsse:Nonce>
                    <wsu:Created>2012-07-04T06:49:48.981Z</wsu:Created>
                </wsse:UsernameToken>
            </wsse:Security>
        </soapenv:Header>
        <soapenv:Body>
            <typ:findWorker>
                <typ:findCriteria>
                    <typ1:fetchStart>0</typ1:fetchStart>
                    <typ1:fetchSize>1</typ1:fetchSize>
                    <typ1:filter>
                        <typ1:conjunction>And</typ1:conjunction>
                        <typ1:group>
                            <typ1:conjunction>And</typ1:conjunction>
                            <typ1:upperCaseCompare>false</typ1:upperCaseCompare>
                            <typ1:item>
                                <typ1:conjunction>And</typ1:conjunction>
                                <typ1:upperCaseCompare>false</typ1:upperCaseCompare>
                                <typ1:attribute>PersonNumber</typ1:attribute>
                                <typ1:operator>=</typ1:operator>
                                <typ1:value>123456</typ1:value>
                            </typ1:item>
                        </typ1:group>
                    </typ1:filter>
                </typ:findCriteria>
                <typ:findControl>
                    <typ1:retrieveAllTranslations>false</typ1:retrieveAllTranslations>
                </typ:findControl>
            </typ:findWorker>
        </soapenv:Body>
    </soapenv:Envelope>
    This example works fine for our Fusion Applications Cloud test instance, without any SSL setup or setting credentials on the request properties as the target service supports policy without message protection.
    Based on the your steps your service has message protection policy, so the above will not work rather you need to do additional configuration. Please check the policy on your service to confirm how the call needs to be made. Here are few links and documents:
    "How to invoke Fusion Application TCA webservice from SOAP UI (Doc ID 1496071.1)"  documents how a service with message protection can be called from SOAP UI. Your steps seem identical so presumably they are based on this document.
    "Oracle Fusion Sales Cloud Web Services (Doc ID 1354841.1)" contains information about the CRM web services including examples on the certificate import and sample payloads.
    Please provide:
    The security policies defined on the service (check the wsdl)
    The exact error message the you get
    Jani Rautiainen
    Fusion Applications Developer Relations
    https://blogs.oracle.com/fadevrel/

  • Unable to add custom SOAP header to consumer webservice in CRM( without using PI)

    Hello Experts,
    We have a requirement to consume webservice proxy in CRM without involving PI. We have WSDL file which has many services as depicted in the first screenshot.After checking old posts, I could add custom SOAP header by using if_wsprotocol_ws_header and there is no xml parsing error for ws_header.Have used if_ixml_stream_factory to check xml parsing error for header.
    '<soapenv:Header>'
    '<wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">'
    '<wsse:UsernameToken wsu:Id="UsernameToken-2">'
                '<wsse:Username>user id</wsse:Username>'
                '<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">paswd</wsse:Password>'
                '<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">MT0B9XFzsZJXXKmVKOsj/Q==</wsse:Nonce>'
                '<wsu:Created>2015-03-30T06:29:17.407Z</wsu:Created>'
    '</wsse:UsernameToken>'
    '</wsse:Security>'
    '</soapenv:Header>' INTO l_string.
    But when my ABAP program as a whole gets executed where consumer proxy is called, then it still throws XML parsing error - undeclared namespace prefix. As mentioned, there is no parsing error for header and WSDL file as a whole in SOAP UI tool works fine,by manually adding SOAP header.
    Have configured SOAMANAGER with logical port.Or any wrong setting in SOAMANAGER can cause this issue? When I tested webservice ping, it gave me attached error but I read in a SAP note that such error can be ignored.
    I want to know if some more setting/coding is required if we manually add custom header to a payload? Is PI really required to implement this requirement? Payload mapping has to be done to add custom header and if that can be taken care by ABAP coding and how?
    Can you please help?
    BR,
    Nisha Verma

    Hello Experts,
    I have not found the solution yet.
    Can anyone provide some insight??
    BR,
    Nisha Verma

Maybe you are looking for

  • Cannot Get AD Password Sync to Function

    I have install the AD Password connector s that I can syncronize passwords from AD to OIM and the otherway as well. When I change the password in OIM, it works fine. But when I try to chane it in AD, I get the following error: Debug [05/16/12 16:30:3

  • RGB color space in LR3 - does it convert back to sRGB on export?

    First off, I've only had LR3 for two days so I am a complete novice. I've been reading my book and just came across the part about RGB color space. I shoot with and use sRGB, which apparently LR will recognize. However, it states that the develop mod

  • How do I remove video effect from maps?

    I changed the video effect on my maps using the inspector, I did not like what I selected. I went back into the inspector to change to another video effect. Thew inspector shows I changed it, however when I play back the clip, the old video effect is

  • How do I get help? My cell is now inop because a BB rep used a product that voided the warranty.

    Manufacture says should not have been used with other products. BB rep recommended and sold me 2 items to be used with a 3rd item (also purchased at BB). BB rep installed and now the unit has pressure cracks due to the two other items used together,

  • How to move string index on TextBox?

    When calling focus on TextBox, key input cursor is located at first index on string. TextBox.Focus(FocusState.Programmatic); i want to move the key input cursor at last index on string.