SoftLayer — как разрешить ResourceTableId из недавно заказанных услуг

Начиная со службы Account и вызывая getNextInvoiceTopLevelBillingItems, вы можете получить все активные позиции выставления счетов, в том числе недавно заказанные в текущем платежном цикле.

Добавление маски объекта, содержащей invoiceItems[createDate,hostName,domainName,resourceTableId,notes], позволит вам получить связанные элементы счета, включая строку счета для чего-то, что было недавно заказано в рамках цикла. Это позволит вам получить идентификатор объекта, с помощью которого вы можете получить виртуальный гость или детали «голого железа» (среди прочего).

Однако resourceTableId является пустым (нулевым) для вновь созданных служб. Остальные поля заполнены правильно, но отсутствует только id системы или службы. Все остальное, созданное вне цикла выставления счетов, будет иметь возвращенный resourceTableId.

Есть ли какой-нибудь альтернативный способ разрешить resourceTableId из позиций выставления счетов, возвращенных getNextInvoiceTopLevelBillingItems?


person Cody B    schedule 21.04.2016    source источник


Ответы (2)


К сожалению, не существует альтернативного способа разрешить «resourceTableId», потому что этот счет-фактура товара, который имеет нулевое значение, создается для нового заказа, в этот момент ресурсы еще должны быть определены или присвоены (hardwareId) счету-фактуре товара.

Обновлено

1:  {
"allowCancellationFlag": 1
"cancellationDate": null
"categoryCode": "server"
"createDate": "2016-04-05T12:48:12-03:00"
"cycleStartDate": "2016-04-05T12:48:12-03:00"
"description": "Single Intel Xeon E3-1250 v2 (4 Cores, 3.60 GHz)"
"domainName": "example.com"
"hostName": "test"
"id": 90120222
"laborFee": "0"
"laborFeeTaxRate": "0"
"lastBillDate": "2016-04-05T12:48:12-03:00"
"modifyDate": "2016-04-05T15:21:30-03:00"
"nextBillDate": "2016-05-04T02:00:00-03:00"
"oneTimeFee": "0"
"oneTimeFeeTaxRate": "0"
"orderItemId": 114652123
"parentId": null
"recurringFee": "0"
"recurringFeeTaxRate": "0"
"recurringMonths": 1
"serviceProviderId": 1
"setupFee": "0"
"setupFeeTaxRate": "0"
"invoiceItems": [1]
0:  {
"createDate": "2016-04-05T12:48:12-03:00"
"domainName": "example.com"
"hostName": "test"
"resourceTableId": null
"invoice": {
"typeCode": "NEW"
}-
}-
-
"resourceTableId": 123123
}

Я получил это: "resourceTableId": 123123

person Ruber Cuellar Valenzuela    schedule 22.04.2016
comment
Это кажется понятным для услуг, которые все еще предоставляются и, возможно, еще не имеют своих собственных идентификаторов, но этот нулевой статус остается в течение длительного времени после завершения предоставления услуги и использования объекта (в течение всего цикла выставления счетов). Я чувствую, что все еще должен быть какой-то способ начать с элемента выставления счетов и получить объект инфраструктуры, когда у них обоих есть соответствующие идентификаторы. - person Cody B; 22.04.2016
comment
Этот элемент счета (первый созданный для нового заказа) сохранит нулевое значение. ResourceTableId будет установлен в следующем элементе счета. В любом случае billingItem возвращает resourceTableId, но я думаю, что это не тот способ, которым вы хотите это получить. - person Ruber Cuellar Valenzuela; 22.04.2016
comment
К сожалению, во всех элементах, возвращаемых в billing_invoice, он также равен нулю. - person Cody B; 23.04.2016
comment
На самом деле, вы имели в виду, что в billingItem есть что-то, что возвращает его напрямую? Я вижу это только по пунктам счета-фактуры. - person Cody B; 26.04.2016
comment
Как вы получили resourceTableId из Billing_Item? Я получаю: Property 'resourceTableId' not valid for 'SoftLayer_Billing_Item'. (XMLRPC::FaultException) - person Cody B; 29.04.2016
comment
resourceTableId не является свойством из SoftLayer_Billing_Item, но отображается в объекте SoftLayer_Billing_Item, когда я использую SoftLayer_Account::getNextInvoiceTopLevelBillingItems, вы пробовали выполнить оставшийся запрос? - person Ruber Cuellar Valenzuela; 29.04.2016
comment
Ну конечно достаточно. Если вы вызовете его без маски объекта, он действительно вернется. Вставлен в конце в алфавитном порядке, как и другие атрибуты. Собираюсь передать это в SoftLayer, чтобы посмотреть, можно ли это задокументировать/исправить. - person Cody B; 30.04.2016

При выполнении следующего запроса:

https://[username]:[apikey]@api.softlayer.com/rest/v3/SoftLayer_Account/getNextInvoiceTopLevelBillingItems?objectMask=mask[invoiceItems[createDate,hostName,domainName,resourceTableId,notes,invoice.typeCode]]

Method: GET

Мы видим, что когда invoice.typeCode равно “NEW”, «resourceTableId» будет нулевым. Но когда invoice.typeCode равно “RECURRING”, поле "resourceTableId" должно отличаться от нуля.

В следующем справочнике вы можете найти дополнительную информацию о состояниях SoftLayer_Billing_Invoice: SoftLayer_Billing_Invoice

person mcruz    schedule 22.04.2016
comment
Удалось ли вам найти способ получить resourceTableId из счета-фактуры? Я чувствую, что пробовал этот маршрут уже десять раз, но без других зацепок мне придется попробовать это снова. - person Cody B; 22.04.2016