2017-04-04 1 views
0

Wenn ich einen SoftLayer_Billing_Item durch die Strato-API, wie in der folgenden REST-API abrufen Anruf erhalten:Softlayer API SoftLayer_Billing_Item gibt resourceTableId Eigenschaft, die in der Dokumentation nicht definiert ist

https://api.softlayer.com/rest/v3/SoftLayer_Billing_Item/151376733 

Das Ergebnis enthält alle lokalen Eigenschaften definiert in die SoftLayer Referenzdokumentation. http://sldn.softlayer.com/reference/datatypes/SoftLayer_Billing_Item

Das Ergebnis gibt auch eine Eigenschaft namens resourceTableId zurück, die nicht in der Dokumentation aufgeführt ist. Der resourceTableId Wert für das Element über die Abrechnung ist 28467033.

Wenn ich die resourceTableId Wert in einem virtuellen Gast-API REST Aufruf verwenden, zB

https://api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/28467033 

ich die Details der Ressource erhalten, die die Abrechnung erzeugt Artikel. Ich habe andere Beispiele einschließlich Hardware-Beispiele versucht und alle haben gut funktioniert. Es ist eine gute Möglichkeit, das Rechnungselement wieder an das zu binden, was es generiert hat.

Ich erhalte jedoch einen Fehler, wenn ich die ResourceTableId -Eigenschaft in eine ObjektMask-Anfrage einbinden. Die Antwort besagt, dass resourceTableId keine Eigenschaft ist.

Hier ist ein Beispiel für die Abfrage von SoftLayer_Billing_Item mit einer Maske.

https://api.softlayer.com/rest/v3/SoftLayer_Billing_Item/151376733?objectMask=mask[id,hostName,domainName,resourceTableId] 

kommt zurück mit

{ 
"error": "Property 'resourceTableId' not valid for 'SoftLayer_Billing_Item'.", 
"code": "SoftLayer_Exception_WebService_ObjectMask" 
} 

Gibt es eine Möglichkeit, die resourceTableId in einem objectMask Anfrage aufzunehmen?

Antwort

0

nein es gibt keine Möglichkeit, in der Tat, das ist ein Problem, dass die Eigenschaft für die Kunden nicht angezeigt werden soll (auch in der Dokumentation, dass die Eigenschaft nicht angezeigt wird), können Sie die Eigenschaft inzwischen jedoch berücksichtigen, dass Eigentum sein könnte nicht mehr in der Zukunft angezeigt, wenn sie sich entscheiden, das Problem zu beheben.

Die Möglichkeit, eine Abrechnungsposition mit einer weicheren Ressource zu verknüpfen, erfolgt über die Abrechnungselement-ID, dh Sie sollten die Abrechnungsposition der Ressource abrufen, indem Sie die Methode getBillingItem aufrufen oder das Objekt maks [billingItem] verwenden Wenn dieser Wert mit der verwendeten Fakturaposition übereinstimmt, ist dieser Ansatz nicht so einfach wie der Ansatz, den Sie verwenden möchten. Dieser Ansatz wird jedoch in Zukunft nicht geändert.

Mit freundlichen Grüßen

+0

Gibt es eine Möglichkeit, vom Fakturierungselement zur Ressource zu gelangen? Oder besteht die einzige Möglichkeit darin, von der Ressource zum Fakturierungselement zu wechseln? Ich möchte die Top-Level-Rechnungen basierend auf einem Datumsbereich abrufen und dann für jede Fakturaposition die zugehörige Ressource abrufen. Ich habe es heute geschafft, ohne es mit der Ressource zu verbinden. Ich hatte gehofft, die resourceTableId dafür zu nutzen, aber ich möchte mich nicht auf etwas verlassen, das vielleicht weggeht. –

+0

Der einzige Weg ist von der Resoure zur Abrechnungsposition, und das macht Sinn, wenn die Ressource gelöscht wird, wird dies aus der Datenbank gelöscht und bleibt nur die Abrechnungsposition, wenn Sie den Zugriff von einer stornierten Abrechnungsposition auf die Ressource versuchen würden wird Null Pointer Errrors bekommen. –

Verwandte Themen