Versions in Quotation

Hi Gurus,
Is there any Versons in the quotations. This is needed beacuse,
Ex., First we have given a Quotation to a Customer with X price, and the customer has agreed to pay Y price.In this case either we need to manually change the Pricing condition type or we will generate a new Quotation with the Agreed price.
In my case if I only change the Price, I need both the Versions of the Quotation with X price and Y price.
Is there any solution for that.
Thanks & Regards
VASU

hi,
I cannot create a sales order with reference to any of the quotations.
I mean, if for example i create:
- quotation 1
- quotation 2 with reference to quotation 1
- quotation 3 with reference to quotation 2
I cannot create a sales order with reference to quotation 2, as the following error appears: "The reference has already been completely copied or rejected"
any solution for this?
Thanks!

Similar Messages

  • Versions for Quotations

    Dear All,
    Is there anything called version mangement in SD like in MM?
    How to track the changes in Quotations & Sales Orders once its revised ?
    Is there anyway to track it other than the Menu Environment Header & Item changes tab??
    Expecting your valuable responses.
    Regards,

    hi promod ,
    facing same situation .
    But in CDHDR  we can see the fild as 3 byte filed for VERSON. it is ok .the issue is when we execute it , this table field is not getting updated .
    Also , is it version available in SD
    please help

  • Quotations from Project Simulation Version

    Hi experts,
    We are creating project quotations using DP81. We create multiple quotations for the same inquiry using Project Simulation Version.
    We would like to know from which version the quotation document has been created, is it possible?
    Or can you suggest any workaround?
    Thanks

    Hi,
    Both options, as in DP81 we are able to select simulations versions.
    But onces the quotations has been created we can't know the source. we know the project as is informed in the account assignment but not the simulation version we have used.
    Has anybody faced this issue before?

  • Sales Order Versions

    Hi Experts,
                     As per the Client Requirement, thay want to track the  versions in the Quotation, There is a option in S&D Sales Order Versions, Can any body help me how to config., Sales order version in Quotations.
    Thanks & Regards,
    Madhusudhan.

    Sorry for posting so late in this thread but just want to answer if any one is interested:
    1. Assign the sales document type VSH1 to your sales area
    2. Assign the desired number range to above document type
    3. Assign your item category to the above document type
    4. In sales order VA02, go to Edit>Additional Functions>Version Data>Transfer
    This will create a new document as a new version with reference to your original document having only the item data.
    You can make changes in your version document. Once changes are confirmed you can copy the version to your original sales document.
    You can even create multiple verisions of a sales document. and compare each version.
    Hope this  will resolve the issue.

  • Bitmap indexes have effect on query execution and equation of values.

    Hi,
    I have a Fact table and 17 dimension tables linked to it. On each foreign-key in the Fact-Table I have created a BITMAP Index. After that I Analyzed the fact table and made sure that the referential constraints were valid.
    Everything seem to be OK until I ran into a difference in totals when using the next 2 queries that should both result into the same total amount.
    Query 1:
    Below query is resulting in a wrong total amount and seems to be cartesian.
    SELECT    SUM(F.DOLLARS)
    FROM       SALES_FACTS         F
    ,               DIM_TIME                A
    ,               DIM_CUSTOMER      B
    ,               DIM_SALESAGENT  C
    ,               DIM_SALESTYPE     D
    ,               DIM_GEOGRAFIC     E
    WHERE    F.TIME_ID     =     A.TIME_ID
    AND         F.CUST_ID     =    B.CUST_ID
    AND         F.SA_ID         =    C.SA_ID
    AND         F.ST_ID          =   D.ST_ID
    AND         F.GEO_ID       =   E.GEO_ID
    AND         A.YEAR          =   '2006'
    AND         C.SALESNUM =   '3770'
    AND D.ST_ID <> '4'
    Query 2:
    Qeury 2 is the same as query 1 exept the the type of sales (D.ST_ID) is now set with in a range of allowed values. This query gives the correct result.
    SELECT    SUM(F.DOLLARS)
    FROM       SALES_FACTS         F
    ,               DIM_TIME                A
    ,               DIM_CUSTOMER      B
    ,               DIM_SALESAGENT  C
    ,               DIM_SALESTYPE     D
    ,               DIM_GEOGRAFIC     E
    WHERE    F.TIME_ID     =     A.TIME_ID
    AND         F.CUST_ID     =    B.CUST_ID
    AND         F.SA_ID         =    C.SA_ID
    AND         F.ST_ID          =   D.ST_ID
    AND         F.GEO_ID       =   E.GEO_ID
    AND         A.YEAR          =   '2006'
    AND         C.SALESNUM =   '3770'
    AND D.ST_ID in ('1','2','3','5') In my situation it seems that when I use the <> (not equal to) symbols in combination with the bitmap indexes, that the result of the sum becomes cartesian and thus incorrect.
    Has anyone an idea why the calculation of the total amount is different in both queries?
    Any help is very appreciated.
    Regards, Ilona

    Another strange effect is when I leave out the quotation around the not equal to 4 for the Sales_type id (ST_ID <> 4 in stead op ST_ID <> '4' ) then the totals is perfect.
    Query 1 version without quotations around ST_ID:
    SELECT    SUM(F.DOLLARS)
    FROM       SALES_FACTS         F
    ,               DIM_TIME                A
    ,               DIM_CUSTOMER      B
    ,               DIM_SALESAGENT  C
    ,               DIM_SALESTYPE     D
    ,               DIM_GEOGRAFIC     E
    WHERE    F.TIME_ID     =     A.TIME_ID
    AND         F.CUST_ID     =    B.CUST_ID
    AND         F.SA_ID         =    C.SA_ID
    AND         F.ST_ID          =   D.ST_ID
    AND         F.GEO_ID       =   E.GEO_ID
    AND         A.YEAR          =   '2006'
    AND         C.SALESNUM =   '3770'
    AND D.ST_ID <> 4 I still have no clue what causes this effect.
    Regards, Ilona

  • SD quotation managed through version control

    Hello all,
    How can I active the version control for a SD quotation? What I need is, check the changes made in a SD quotation using the version control.
    Thnks in advanced.
    RB

    In our current J2EE environment an ant script builds a war and copies it to a staging file server, then there is a java app that deploys the war to weblogic with the weblogic scripting extensions. We are thinking of modifying this app to also deploy the PTE files that any portlets in the war depend on. Day one a jsp portlet requires a single session preference. The next day it needs a login token to use the PRC. How do you coordinate this? For us it will probably be done with custom scripting.
    A developer modifies the jsp and checks that in along with a revised remote service pte file which has the new settings. The ant script will then build the war and package it into a tar with the pte file and finally drop it on the staging server. From there our existing java deployment web app can extract the tar, deploy the war and run a migration import on ALUI. Hopefully all this can happen in a transactional context so that that if the import fails, the new portlet is not deployed.
    I don't want to run into the case where a new portlet is out on the QA box and the portlet service is misconfigured and isn't supplying the correct headers to the portlet tier.

  • CRM Quotation version management

    Hi Experts,
    We have got a requirement for 'Quotation version management' in our current project.
    But for my surprise i couldn't find any information about this in SCN, Service market place.
    Can someone pls share some knowledge about this, am using CRM 7.0.
    Do we have this feature in 7.0 ?
    if yes how to configure and use it  ?
    Regards

    Hi Bhargavi,
    This functionality is not available in CRM 7.0 EHP 1.  You need to do the enhancement to achieve this -
    Revision of quote where you need to maintain the versioning of a Quote requires an enhancement. Following logic can be applied -
    1. If multiple revisions are required then you should set one quote as a primary quote.  Else, the user will not be knowing which one is the quote on which he/she suppose to work or send it to the customer.
    2. Also, I hope you want to link these revised quotes to your opportunity, you need to link it in the Transaction History tab which requires WEB UI enhancement.  (I assume that all these revision quotes may be linked with one single opportunity)
    3. Create new button say ‘Revision Quote’ based on "Copy" Button functionality.
    4. BADI - CRM_COPY_BADI can be used to enhance the functionality
    5. When you create a revised quote whichever is the latest revised quote can be set as a primary quote.
    You may need to write around this logic to achieve the requirement and based on the logic a technical enhancement is needed.
    Hope this will be useful
    Thanks and Regards
    DJ

  • CRM ONLINE 2013: On Approval Of Quotation, Run Report, Generate PDF and Send an Email With PDF as attachment

    Hi,
    I am using CRM ONLINE 2013.
    How to automate below process?
    1. On Approval Of Quotation, Run Report.
    2. Generate PDF.
    3. Send an Email With PDF as attachment.
    As i have gone through many forums for this topic, but creating a plugin code for generating Report PDF is not possible in CRM ONLINE.
    So, What is the alternate way to do this..?
    Thanks.

    This is my entire code mentioned below:-
    <!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" 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('ABM_Infotech_SalesQuote');
            //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 = "Report1.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 = "ABM_Infotech_SalesQuote"; //set this to the report you are trying to download
                var reportID = "751089AA-74B8-E211-B52F-D8D3855B253B"; //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:ABMFilteredQuote=" + 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>

  • Can I use intelligent quotation marks on my iPhone?

    On my Mac I use "intelligent" punctuation, for example intelligent quotation marks. Can I do this on the iPhone too?
    Thanks :)

    I assume you mean the feature where you press a single quotation mark button and the appropriate version of it appears depending on whether it's left or right of the next character? In which case, no, on iPhone you have to enter each quotation mark with different buttons.

  • Short Dump while saving the changes in Quotation

    Hi abapers,
    Please solve my Problem Actually Problem with the Quotation. I have created one SAP Script and attached to VA21. now when I save the Quotation it gets saved byut when I try to open the Quotation in VA22/Va23 first it gives me a short dump but next time it opens up without any short dump.
    I get a Short Dump " LOAD_PROGRAM_LOST". Short Description is : "Program "ZZV1SOCONFIRM_INCLUDE" was modified during the run.".
    this is just an include which I used it in my SAP Script. Can anybody suggest me what happened with the code.
    Below is the Error Anaysis in ST22.
    Error analysis
        While the program was running, the program "ZZV1SOCONFIRM_INCLUDE" had to be
         reloaded
        because a bottleneck pushed it out of the local
        program buffer. However, the database was found to contain an already
        changed program.

    Hi Mike,
    I think by the time you trigger the print out of quotation, Program active version might not be generated. you might have given the print before it gets the active version.
    If you are still getting the dump, then it could be problem at output config.
    Regards,
    Satish

  • Error while creating quotation in sales order verion ?

    Dear All,
    while creating an quotation in sales order version management getting an error.
    Sales Doc. MsgType Message Class        Msg.No. Message text
               E       AM                        53 Specify either address number or address
               W       V1                       555 The sales document is not yet complete:
               E       V4                       219 Sales document  was not changed
    thanks
    vincent

    Dear Vincent
    May be this is related ABAP Issue please check with them because i found same issue
    "BAPI_SALESORDER_CREATEFROMDAT2" - getting error while executing in se37.
    "Specify either address number or address handle " BAPI_SALESORDER_CREATEFR

  • Triggering the creation of a quotation from within an Opportunity...

    We have implemented CRM Best Practice (CRM 7) and want to trigger the creation of an ERP quotation from within an Opportunity. Within the customising to assign the ERP order type to the CRM transaction type,
    when input help is pressed, no values are returned. CRM is not seeing the ERP order types.
    I have been informed that this is correct and that we need to create the order in CRM and then forward to ERP. However, this will never do, especially as CRM does not have all the information to successfully raise an order.
    I was wondering if anyone had encountered a similar problem and found a way around it. I'm aware that we can probably use the transaction launcher to create an order in ERP and return to CRM, but how this is triggered is another matter.
    Any advice and suggestions would be very much appreciated.
    Jason

    Thanks to all. We have had a reply back from SAP to say that what we trying to do is not possible. We have CRM 7 and ERP ECC5, however SAP are saying that we need at least 2005 on our ERP system for this functionality to work.
    Basically, when in config we attempting to set up the document types, but none are being displayed.
    SAP connected to our system and after analysis said that the cutsomers ERP system (ECC 5) needs to be upgraded to a minimum of ERP 2005, which I find to be an absolute crazy statement to make. Apparently, according to note 1236015 a minimum of ERP 2005 is required to maintain ERP sales transactions in CRM 7.0's CRM webclient UI.
    They debugged CL_CRM_INTLAY_LORD1_ERPIL
    IF_CRM_ERP_LORD_HELP_VALUES~GET_AUART
    Which seems to call FM SLS_LORD_GET_VALUES_AUART but does not exist in ECC 5.
    When tested in our CRM 7 system (not the clients) we do get a list of doc types appear, but then we are on the latest version of ERP.
    I was wondering whether there was a service patch to ECC 5 which might add the function group SLS_LORD_SHLP and assocaited function modules and includes, together with the class CL_FIELD_CONVERT.  That looks to be everything needed to run in ECC 5 from looking at our ECC 6 system. I'm never sure where ERP 2005 sits, is that a higher than version than ECC 6?.
    Jason

  • Data not getting fetched from Quotation to Contract

    Hi,Myself new to TM. I have a ticket mentioning data not getting fetched from quotation to contract. How to solve it? Please help...
    Message was edited by: Michael Appleby

    Please add the version of the TM product and which SPs have been installed.  Also more information on the quotation and contract.
    What do you mean by ticket?  It you mean an error message, from where are you reading the message?
    Regards, Mike
    SAP Customer Experience Group - CEG

  • Transfer of changed order BOM from quotation to sales order

    Good morning!
    Please consider the following scenario involving variant configuration:
    A quotation is raised in the system, and the values of the characteristics are assigned. Therefore a order BOM is generated (for the quotation), and that order BOM is changed manually using tcode CU51 (for cost estimates purposes). When it is saved, the system updates the BOM in the quotation automatically (ok, this is a desired behavior).
    Although when we create an sales order with reference to that quotation, the newly chnaged order BOM is not copied to this new order, the order BOM is redetermined instead.
    How can I make the system to copy it from the quotation properly?
    Thanks in advance!
    Adriano Cardoso

    Thanks for the reply. I have verified this note and it seems more toward the BOM explosion in the sales documents themselves than for the modifications made afterwards (CU51 changes in BOM, for example).
    After realizing that, I´ve made a little research and found the Order Engineering Workbench possibility, which seems to fulfill all our requirements regarding this point. I looked all over SDN and haven't found too much input about it. In the SAP VC book, says it is not part of the SAP ERP, but a add-on.
    So, you don't happen to have any idea of how can we check if it is activated / installed  in our system or not? We are on version 5.0.
    Thanks!
    Adriano Cardoso

  • I have a MacBook pro version 10.6.7 with snow leopard. After an scheduled software upgrade I could not open Quicken (It said it could not open the files). Now I can only open it if I have my external drive on. Can you help?

    I have a MacBook pro version 10.6.7 with snow leopard. After an scheduled software upgrade I could not open Quicken (It said it could not open the files). Now I can only open it if I have my external drive on. Can you help?
    All the information that I had input on Quicken is gone. I have to have the external hard drive that I use to back up to be able to use quicken now. It is as if it was erased from the laptop hardrive

    Try repairing permissions. My favorite way is with a utility called AppleJack. Info and download here. It's free. It only works when you boot in Single User Mode. When restarting or booting, hold down the Command key and S keys.
    You will get a very different startup screen that looks like the Terminal app has hijacked the screen. Just let the lines of text scroll by. When that happens you will get a text entry prompt. Type in "AppleJack" without the quotation marks.
    A DOS looking menu will appear. Choose 1 or d to run Disk Repair. If you get a message that Disk Repair found and corrected errors, run it again. Repeat until you get the "your disk appears to be ok" message. This rarely happens with my experience, though. This does the same thing as as booting from an external drive and running Disk Utility's repair. Only, no external drive is required!
    Next, choose 2 or p to repair disk permissions. This will take a little while. AppleJack warns that it will take up to an half hour to run repair permissions. It'n never taken more than about ten minutes for my MacBook Pro.
    As permissions are repaired, you will see each repair scroll on the screen. When done, the menu returns, choose q to quit. Then at the prompt, enter "exit" without the quotes. Your MacBook Pro should restart into Mac OS normally after this.
    Hope this helps.

Maybe you are looking for

  • PO Group/Split by Account Assignment

    Is there a possibility to split/group Purchase Orders that would be created directly from the 'Process Purchase Order' transaction? I thought of using the Group_Local_PO BADi, but it would be called only while creating Purchase Orders from the sourci

  • Lost Effects Tab In Browser. How Do I Get It Back?

    That's it! How do I get the Effects Tab back in the Browser and how did I lose it in the first place? Ian.

  • How to get a decoration like that

    i want to get some decoration like that in the picture  i'm using labview 2011 Attachments: Untitled2.png ‏12 KB

  • Substitute material

    Can u please tell me equivalent field of smatn - substitute material (R/3 field) & knumh - condition record number (R/3 field) in CRM. I also need a table name which contains both fields in CRM

  • Linking of SRM OBN with Custom SRM POWL WDA application

    Hi All, We have our Producer portal with version 7.0 sp14 and Consumer with version 7.4 sp05. We have "Check Status" a SRM Standard POWL application integrated in portal and all the Navigation OBNs are working fine with it. our ABAP team developed a