CRM Sales Online Quick Find Error

Hi All,
Did a search for 2184 as a Provider ID in Quick Find in the CRM, and received 174 results, of which 1 to 15 are displayed. Wh
en I click Next or Last in the lower-right corner of the screen, the screen show
s the following Oracle error message:
The following error occurred:
java.sql.SQLException: ORA-00907: missing right parenthesis
No further information.
Error in NMXTST jserv.log file:
oracle.apps.jtf.security.base.CredentialIncorrectException: Incorrect credential
at oracle.apps.jtf.security.auth.AuthServiceImpl.check(AuthServiceImpl.java:686)
at oracle.apps.jtf.security.base.SecurityManager.authenticate(SecurityManager.java:562)
at oracle.apps.jtf.base.session.ServletSessionManager.startStandAloneSession(ServletSessionManager.java:3167
I am unable to find the appropriate solution. Please help me regarding this issue
Thanks in advance
Subhas

Hi Chris,
     This is due to corruption of fetchXML definition. Here is the solution to resolve the issue.
http://fkbase.info/node/161
http://wikap.dk/2013/08/corruption-of-views-an-table-alias-dublicate-in-crm-2011-after-polaris-update/
Hope this helps.
 Minal Dahiya
 blog : http://minaldahiya.blogspot.com.au/
 If this post answers your question, please click "Mark As Answer" on the post and "Vote as Helpful"

Similar Messages

  • Update Account Number and Describtion on CRM Sales Online

    This is one of the kinds of issues in CRM that is trying to update the Account descriptions.
    Navigation Steps:
    Search for the Organization (Office) Tenet Health System: Corporate PFS.
    Click on Relationships.
    Click on the Office – TP Org ( Aetna ) relationship link.
    Scroll down to see the Account numbers and Descriptions.
    User wants to update these descriptions but the changes are not reflecting. As a temporary fix we are making these updates from the back end. Table used is xscp_hz_party_attributes. But we want to know why the updates are not happening from the front end.
    Please any one help me...
    Thanks in advance

    That is phishing attack
    Someone, other then Apple, sent it to you
    Read http://support.apple.com/kb/ht4933
    Allan

  • How to find out the source program file in Proposal in Sales Online in CRM

    How to find out the source program file in Proposal in Sales Online in CRM

    You can find it in the oracle->apps->prp directory.
    It is the $JAVA_HOME

  • Bin error in sales online

    i had a custom bin in sales online page.because of performance issue i disabled it using crm html admin responsibility.now when sales online user logs in,they are getting following error,instead of displaying bins
    " An error occurred while loading one of the components ".
    should i run some concurrent after making changes in Custom bin?
    i have checked after bouncing and clearing caches.

    i had a custom bin in sales online page.because of performance issue i disabled it using crm html admin responsibility.now when sales online user logs in,they are getting following error,instead of displaying bins
    " An error occurred while loading one of the components ".
    should i run some concurrent after making changes in Custom bin?
    i have checked after bouncing and clearing caches.

  • Getting an error while creating a ERP Quotation from CRM Sales Web-UI.

    Hi Experts,
    I am getting an error while creating a ERP quotation from CRM Sales Web-UI. Here  I am enclosing the screen shot. Please give me the solution for this.Thank you in advance.
    Regards
    Kishor Kumar.

    Hi Kishore,
    Please refer to the link below -
    Entry of ERP Sales Documents in SAP CRM - Sales Quotation and Order Management - SAP Library
    Also, refer to the SAP note -
    1446253  - FAQ note: ERP documents in the CRM Web UI (lead-to-cash scenario)
    This note will give you the related topic and the configuration required through SAP help links.
    Hope this will be useful.
    Thanks and Regards
    DJ

  • Error Message"ERP adapter is called" for CRM sales order replicate to ERP

    Hi All:
    In our implemenation project, we use CRM7.0 stanard sales order type TA for sales order creation. And we did all the right configuration for sales order at CRM side. CRM sales order can be saved correctly.
    But this CRM sales order couldn't be replicate into ERP, as in Middleware the corresponding BDoc message is yellow light and Error messsage show "ERP adapter is called".
    Is anyone have same issue before, please kindly advise how to handling this issue and prossibile solution?
    Best regards:
    Kai

    Hi Kai,
    Is there any queue entry on transactions : SMQ1/SMQ2 with SYSFAIL status. If so, what is the error message it is showing?
    Are you able to process the order further? Or getting an error message like "Document being distributed" or something?
    Good luck,
    Aaru

  • BDOC's to update the custom fields in R/3 from the CRM sales order

    Dear All,
    I need a small help.
    My requirement is as follows.
    When ever a sales order is created in CRM, an outbound delivery will be automatically created in the R/3 system.
    There are some fields in the CRM sales order which are not there in the R/3 system.So I have to create these fields in the LIKP and LIPS tables in R/3 which is not a problem.
    But I have to copy these fields from CRM to the LIKP and LIPS tables in R/3 when ever a sales order is created and saved in CRM. (This should happen automatically)
    So could anyone tell me whether there are any BDOC’s available to update the sales order info in the LIKP and LIPS tables and also any BADI which can be trigger for this purpose.
    Thanks in advance.
    Regards
    Shafath

    Hi,
    Thanks a lot. You have given a good solution.
    But a small correction.
    Sales Order is not transferred from CRM to R/3. The system is creating (automatically) a delivery in the r/3 system for the sales order created in CRM (Here we will not have the sales order in R/3), so we don’t have an entry in VBAK and VBAP tables.
    When we create a sales order in CRM and save , the delivery in R/3 is created and the sales order is not transferred to R/3.
    So while saving the sales order itself in CRM, I need to trigger a badi to update the LIKP and LIPS tables by calling a RFC (which needs to be developed in R/3).
    So I need a badi which triggers when the sales order is saved and which tells whether the sales order is saved without errors or not (because delivery in R/3 is created for only those orders which are created and saved without errors in CRM)  and returns the sales order number.
    It will be helpful if you can send some info on this.
    Any how thanks a lot for your quick response.
    Regards
    Shafath

  • Mobile sales online installation for CRM5.0(ABAP+JAVA)

    Hi ,
    Client wanted to implement Mobile sales online for NW2004s component CRM5.0(ABAPJAVA) stack. We have already installed CRM5.0 with ABAPJAVA engine and EP7.0.Currently we are using EP with CRM5 using PCUIscreens. Also configured SSO(SAP logon ticket) between EP and CRM and BI7.0.
    I found the document which says about NW04 instance CRM ABAP stack and need to install JAVA satck seperately then do SSO and deploy .sca files etc...but could not find for MSON on NW2004s using EP.
    We have already integrated CRM5,BI7 with EP7.0 using SSO saplogon ticket,now my concern is
    1. Do i need to use MSON configuration like SSO,SLD,deployment on existing CRM5.0 ABAP and Java engine , which is installed in one system ?
    <b>or</b>
    2. Can i use MSON config through  CRM5.0 already integrated with EP7.0 ? which is already configured SSO and SLD etc..
    Which method is recomended for Blackberry to communicate CRM5.0 system?
    Any sugessions would be appriciated.
    Thanks,
    Shaik

    any help will be appriciated.

  • I upgraded to iphone 4. When sync to comp. Comp. asked to upgrade. I did. I tried to open itunes and it failed. Quick Time error 2096. I went through severals procedures. Finally could open itune. Pluged phone in comp it will charge but wont sync

    I upgraded t iphone 4. When I sync to computer. I was asked to upgrade itunes, I did.  When I tried to open itunes a Quick Time Error 2069 occured. I went through several procudures. Finally I could open itunes. When I pluged in the phone, it would charge but not sync. What now?

    update...
    I am not one to give up. So I called AT&T today. Now they are telling me they canceled my order because they were unable to fulfill my order. Basically, AT&T told me they sold out so they canceled my order so I can proceed to reorder again. It took them 4 days to realize this. I will be lucky if I get a new phone by Christmas. I am sure they will find a way to cancel my order again.
    Again, I argued, how is this my fault. I placed my order at the store around 11 a.m. Pacific time. My friend ordered his phone online sometime after me. He got his but my order was canceled. AT&T tried to explain to me that they sold over 600,000 phones, almost 500 per minute during there peak. Again, I asked, how this was my fault.
    I can understand over selling the phone. It is a great product. There is no reason to cancel my order. You adjust my order and tell me you will let me know when my phone will be in. I would have been mad that my phone was going to be late but I would have survived. At least I would be getting one.
    At this point, I have no order and AT&T or Apple website will allow me to order one. I just want to get in the QUEUE for one.
    Frustrated.

  • Universal BOM type in CRM sales

    We are going to use in ECC bill of material usage type 3 (universal), with some line items indicated relevant for sales and some other indicated relevant for production.
    Can we interfacing (RFC) this bill of material usage type and only the line items relevant for sales to CRM sales?

    Hi,
    In CRM you can use so called structured products. This functionality works only for usage 'Sales and distribution' (usage = 5 in ERP). The usuage type 3 Universal is only available in ERP but cannot be used in CRM.
    Online documentation for the scenario in CRM you find under following link:
    http://help.sap.com/saphelp_crm700_ehp03/helpdata/en/be/963c3cb92d854be10000000a114084/content.htm?frameset=/en/71/9a0ad73ab84c4ebb60e5530ba623a4/frameset.htm
    Best regards
    Marion

  • Wrong contact partner in the CRM sales order come from ISA

    Hello,
    I'd like to know if is it possible to manage the partner dermination "contact from a shopping basket created in ISA.
    in my case, i have a shopphing basket created by a user XX and this shopping basket is used by a other  one (user ZZ) to create a crm sale order; The problem is that the contact filled in the crm order is the partner XX instead of ZZ. Is it possible to manage the determination by customizing XCM ou SPRO to define the suitable partner (ZZ)
    Best regards.
    CMA.

    Hello CMA,
    Thanks for explaining the problem clearly. Looks like you've got an issue. Though you created an "order" with reference to a "template", ISA doesn't use any Copy function configured in the backend. It is all done piece by piece using Java and ABAP code.
    This is certainly a bug in standard code - unless somebody finds a note that explains. I couldn't find any SAP notes on this issue. The "Create new order on the basis of an order template" finally uses the action CreateFromPredecessorAction. While there is code available to address the "Ship-To list", "drop ship - ship-to", "Sold-To", "Requested Delivery date" etc. of the  source (template) to target (basket or order), the code essentially misses to change the Contact person of the target document to the current user.
    You can address this issue in two ways. # Ask SAP to fix the bug in the above class or # Do it your own way, by just introducing an action to "massage" the data the way you want. The CreateFromPredecessorAction action has one outcome editdoc.
              <action path="/b2b/createfrompredecessor" type="com.sapmarkets.isa.isacore.action.CreateFromPredecessorAction">
                   <forward name="editdoc" path="/b2b/updatedocumentview.do"/>
    Introduce a custom action ZFixContactPersonAction immediately after like this:
              <action path="/b2b/createfrompredecessor" type="com.sapmarkets.isa.isacore.action.CreateFromPredecessorAction">
                   <forward name="editdoc" path="/b2b_custom/zFixContact.do"/>
              <action path="/b2b_custom/zFixContact." type="com.parxlns.action.ZFixContactPersonAction">
                   <forward name="success" path="/b2b/updatedocumentview.do"/>
    In this custom action, you can add some quick code to "fix" the contact person partner from the header.
    import com.sapmarkets.isa.businessobject.header.*;
    import com.sapmarkets.isa.businessobject.order.*;
    SalesDocument salesDoc = null;
    BusinessObjectManager bom =
            (BusinessObjectManager) userSessionData.
            getBOM(BusinessObjectManager.ISACORE_BOM);
    salesDoc = bom.getBasket();
        HeaderSalesDocument  header =
            (HeaderSalesDocument) request.
            getAttribute(MaintainBasketBaseAction.RK_HEADER);
    String selectedPartnerID = bom.getUser().getContactData().getId();
    String selectedPartnerGUID = (String) bom.getUser().getContactData().getTechKey();
    PartnerList partnerList = new PartnerList();
    //Get the document header - partner list value
                   PartnerList partnerList = header.getPartnerList();
                PartnerListEntry contactData = new PartnerListEntry(selectedPartnerGUID, selectedPartnerID );
    //Set the Contact partner in partner list
                partnerList.setContact(contactData);
    //Set this partner list back to header.
    header.setPartnerList(partnerList);
    return ("success");
    Hope this helps with little changes.
    (sorry, there I am not aware of any solution with simple customization in the backend)
    Easwar Ram
    http://www.parxlns.com

  • Difficult question in CRM Sales analytics

    Hi,
    we have enterprise Portal 6.0 with CRM Business package  and BW3.5 with CRM Business content. Our perticular interest is CRM Sales and to enable the analytics related to Portal Role "Sales Manager".
      The following( some examples) are the BW Web template accesses by the Portal and any detail info/understanding/ BKM is welcome in this.
    SALES Performance analytics
    1> 0TPL_0CRM_OVERVIEWANALYTICS     for overview
    2> 0TPL_0CRM_SM_FINANCE            for Finance
    3> 0TPL_0CRM_SM_CUSTOMER           for accounts(customer)
    Is there any documentation regarding this perticular role( Sales Manager)??
    Thanks
    Arunava

    AHP,
      Thanks for your response. I was trying to open the above mentioned web template in the web app designer , but I get the following error
    "The selected Web Template contains the following HTML error, non supported web itemm, or is not designed to be edited with the Web Application Designer..
      Use the "Upload to server" mor "download from server" and edit the web template in an external HTML editor"....
      How do I know which query or Query view this Web Template is referring to?
      I didn't find the CRM web templated through the help.sap.com  and also in the service market place in the "Analysis scenarios' I couldn;t open the document for the sales analytics. Can you help?
       Thanks
    Arunava

  • Doubt in CRM sales order Cube and ODS

    Hell Friends,
    We have a standard cube '0CSAL_C03' and ODS '0CRM_SALO' for CRM sales order.
    ODS is attached with infosurce(datasource) -0CRM_SALES_ORDER_I and 80CRM_SAL2(this is update rules-another sales order items(lean extraction) ODS - 0CRM_SAL2).
    we have another ods(lean extraction)- 0CRM_SAL2 and again it is attached with 0CRM_SALES_ORDER_I.
    Could anybody explain me why two ods ar coming for sales order- crm.
    Can we use two ods or only one ods-0CRM_SALO?
    Could you pls. check it the system under- crm  application component and let me know what is the best way for going impls.
    Thanks,
    Mahantesh

    Hi!
    actually they definatly use Bdocs because messages bdocs are the main communication elements in CRM.  you will definatly find them in SBDM.  Bdoc are simmilar idoc's  they used to send information between CRM transactions and ERP systems, mobile clients or to BW.  there are 2 types of Bdocs message bdocs(M Bdocs) and synchronization Bdocs (S Bdocs). Sbdocs are used for sycronizing between moblie clients and  CRM online. M bdocs are used for communication within CRM and also for exachange information between R/3 and CRM as well.
      So for sales we normally configure our standard Bdocs or we can modell our own bdocs.  lean Bdocs are message bdocs but have only subset of all the fields in a transaction and used for updating only those fields. usage of them can be verified only CRM specialists. it depends on how your organizational sales process is configured in CRM.
    in SALES we normally use bdoc  BUS_TRANSACTION_MESSAGE this is used for most of the transactions in CRM. so you got to confirm from your team if they are using any other bdocs for slaes additional to the above mentioned.
    with regards
    ashwin

  • Gamer Club Unlocked for sale online?

    I tried using my coupon in the store for $60.00 off and after about an hour of managers and calling best buy, getting transferred 6 times, and finally I was told to go online and order Gamers Club Unlocked and then call back and they could credit me the $60.00, I can't seem to find it for sale online... does anyone know if that is even possible? At least the cahier Brian bought me a soda..

    Hello jameshinsvark,
    I am sorry to hear of the trouble you had with your Unlocked discount coupon.  It does sound as though there may have been some user error on the part of the store associate assisting you in your check-out process.
    I have replied to your private message, but as BrianJason mentioned, Gamers Club Unlocked can only be purchased in-store.  As you had a manager there aware of your situation and offering assistance I would recommend you return and speak with him or her.
    Thank you for being a My Best Buy member.  I hope the store is able to assist you in getting Unlocked as you had desired.
    Regards,
    Mike|Social Media Specialist | Best Buy® Corporate
     Private Message

  • 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.

Maybe you are looking for