JScript Zugriff auf Ordernumber

17. November 2014 10:48

Hallo Zusammen,

ich habe eine eigene Entität "Kundenprojekt". Dort gibt es eine Zuordnung zu einem Auftrag. Ich würde gerne beim onload event auf die Ordernummer des zugeordneten Auftrags zugreifen, habe jedoch keine Ahnung wie ich das machen soll. Ich will aus der Ordernummer und einer zufällig erzeugten alphanumerischen ID eine neue zusammengesetzte ID bauen:

function CreateKundenprojektID()
{
if(Xrm.Page.getAttribute("new_KundeprojektID").getValue != null)
{
for(var randomid = ''; randomid.length < 5;) randomid += Math.random().toString(36).substr(2, 1)
Xrm.Page.getAttribute("new_KundeprojektID").setValue(randomid);
}
}

function GenerateCombinedID()
{
if(Xrm.Page.getAttribute("new_CombnedID").getValue != null)
{
Hier Soll jetzt das entscheidende passieren.
var combined = Ordernummer.concat(Xrm.Page.getAttribute("new_KundeprojektID").getValue);
Xrm.Page.getAttribute("new_CombinedID").setValue(combined);
}
}


Ich hoffe, dass mir hier jemand bei der Lösung des Problems weiterhelfen kann :)

Vielen Dank schon mal im Voraus.

Viele Grüße
Sven

Re: JScript Zugriff auf Ordernumber

17. November 2014 11:09

Hi Sven,

die ID des Lookup bekommt du so:
Code:
var lookup = new Array();
lookup = Xrm.Page.getAttribute("attributename").getValue();
if (lookup != null) {
    var name = lookup[0].name;
    var id = lookup[0].id;
    var entityType = lookup[0].entityType;
}


Dann kannst du z.B. per OData Request die Ordernummer zu der ID abfragen. Hier ein Beispiel eines Primarycontact eines Account:
Code:
 var ODataPath = serverUrl + "/XRMServices/2011/OrganizationData.svc";
            var accountRequest = new XMLHttpRequest();
            accountRequest.open("GET", ODataPath + "/AccountSet(guid'" + accountId + "')", false);
            accountRequest.setRequestHeader("Accept", "application/json");
            accountRequest.setRequestHeader("Content-Type", "application/json; charset=utf-8");
            // execute the request
            accountRequest.send();
            if (accountRequest.status === 200) {
                var retrievedAccount = JSON.parse(accountRequest.responseText).d;
                // retrieve the primary contact of the account
                var primaryContact = retrievedAccount.PrimaryContactId;           
            }
            else {
                alert("error");
            }


Du könntest dir auch das http://xrmservicetoolkit.codeplex.com/wikipage?title=Rest%20Functions anschauen, das hat schon ein paar fertige Funktionen (REST, SOAP) dafür integriert.