Published Solutions
-
[REST API] Error when trying to filter orders by Customer
Original Publishing Date: 2023-10-17 Symptoms The Order Management REST API documentation contains instructions on filtering orders based on CustomerID. It mentions to use the function 'type' with property 'customerID'. However, when trying to get the list of filtered orders, the request fails with the error seen below: Request: https://example.com/aps/2/services/order-manager/orders?in(type,CF),in(customerID,d1bfb390-d8a4-40e5-8aed-c6354231ab9c) Response: "error": "com.ingrammicro.billing.aps.exception.APSError", "packageId": "60d481af-eaa9-4f71-9135-436810e3f2c8", "message": "com.ingrammicro.billing.application.exceptions.RQLMappingNotExist: Mapping from RQL property 'customerId' doesn't exist.", Cause The documentation of Order Management API incorrectly states to use the property 'customerID' to filter the orders. The RQL property 'customerID' does not exist. Resolution Use the property 'buyerID' or 'buyerInternalID' instead. https://example.com/aps/2/services/order-manager/orders?in(buyerInternalId,1001091),in(type,CH) https://example.com/aps/2/services/order-manager/orders?in(buyerId,d1bfb390-d8a4-40e5-8aed-c6354231ab9c),in(type,CH) A documentation bug #DOC-3362 has been raised to fix this.
-
Lines missing for Adobe downsize CH orders
Original Publishing Date: 2023-10-18 Symptoms After placing a downsize change order for an Adobe Cloud subscription, the order detail on the Summary tab does not match the changes detailed in the Provisioning Items tab. Only resources that have been reduced to zero appear in the Order Details tab. The change order was completed on the Adobe side and CBC side. The subscription resource number is correct, only the subscription order details are missing. Cause Billing Terms for the downsize are configured as "Old Amount". It means that no refund or refund adjustments are issued in case of downsizing the resource amount. It is related to the resources whose amount after the downsize is greater than 0. If the number of resources is reduced to zero, they will be marked as canceled and will be included in the Order Details. Refer to the official documentation at Configuring Advanced Billing Terms. Resolution The behavior is expected according to the Service Plan configuration
-
Approval Request Submission Failed - No such consumer key
Original Publishing Date: 2023-08-28 Symptoms During the test, the sales order got the status "Approval Request Submission Failed" and failed with the error "HTTP server returns error with code 401: The application returned an error message with a non-parsable JSON. Check the application logs to find out what went wrong." Note: The below information is applicable to any component/microservice. Not just Approval Engine. I checked the application logs (log of the corresponding pod) to find out what went wrong and found the following error: No such consumer key MDdm******************************MDdi Cause oauthkey and oauthsecret mismatch between CBC DB and helm values (K8s). Resolution Check the current key and secret in helm values of the corresponding microservice, for example: $ helm get values approvalengineapp USER-SUPPLIED VALUES: dockerrepo: odindevops-a8n-docker-21-public.jfrog.io jdbcconnectionparams: ?sslmode=require&ApplicationName=approvalengineapp oauthkey: M2Y3Z***************************0Mzk5 oauthsecret: Ym*********************************Iw As you can see, the oauthkey doesn't match the one that CBC platform expects to see (the one seen in the pod log). Investigate the root cause. It could happen due to multiple reasons. For example, someone could have re-deployed the microservice in K8s by accident. If the reason is clear and you have mitigated the root cause, you may correct the key and secret here in the CBC control panel: CBC PCP -> Applications (-> System Applications) -> click on the affected application -> click on the application instance -> Edit Connection Settings Put the key and secret from helm values to the respective fields.
-
Product Inventory does not show product name properly
Original Publishing Date: 2023-10-23 Symptoms It is observed that some product names was not shown correctly in Product Inventory page. For example, for product name 'Power Automate Process for Students (CSP EDU BAS 1YR ANN)', only '(CSP EDU BAS 1YR ANN)' is shown in Product Inventory: This incorrect name is also included in Price Inventory Export. Cause The issue was caused by software related issue #OA-35542 - 'Incorrect regular expression for parsing BMResource name' and was fixed in BSS version 21.14.95. Resolution Please contact your Technical Account Manager in case hotfix request is required or for more details regarding the software related issue.
-
[Adobe] Purchase PR fails: 'Customer is not eligible to purchase Offer ID'
Original Publishing Date: 2023-10-04 Symptoms Customer place a SO for an Adobe VIP Marketplace based plan and fails with and error like this: Message from the Vendor: Finalizing purchase pending for customer TA-1234-1234-1234 unsuccessfully due AdobeClientError: Bad Request, Customer is not eligible to purchase Offer ID, context: {'code': '2129', 'message': 'Customer is not eligible to purchase Offer ID', 'additionalDetails': ['Line Item: 1, Reason: VOLUME_DISCOUNT']} Cause According to the logs, the Adobe API is complaining regarding volume_dicount , in this case, the connector is sending 02A12, which is strange since the number of licenses is only 1, so it should be 01A12: "2023-10-03T14:47:36.662Z","PR-1234-1234-1234-001 Finalizing purchase pending for customer TA-1234-1234-1234 unsuccessfully due AdobeClientError: Bad Request, Customer is not eligible to purchase Offer ID, context: {'code': '2129', 'message': 'Customer is not eligible to purchase Offer ID', 'additionalDetails': ['Line Item: 1, Reason: VOLUME_DISCOUNT']}" "2023-10-03T14:47:36.660Z","PR-1234-1234-1234-001 Response 400 Bad Request on POST https://partners.adobe.io/v3/customers/1005123272/orders < {'Server': 'openresty', 'Date': 'Tue, 03 Oct 2023 14:47:36 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'x-request-id': '85ffa95c-d6c8-4362-8fad-cc5a388e43e7', 'vary': 'origin,access-control-request-method,access-control-request-headers,accept-encoding', 'content-encoding': 'gzip', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, PATCH,DELETE, OPTIONS', 'Access-Control-Allow-Headers': 'Authorization,Content-Type,X-Api-Key,User-Agent,If-Modified-Since,X-Request-Id'} {'code': '2129', 'message': 'Customer is not eligible to purchase Offer ID', 'additionalDetails': ['Line Item: 1, Reason: VOLUME_DISCOUNT']} 0:00:00.474632" "2023-10-03T14:47:36.183Z","PR-2922-3393-0406-001 Request POST /v3/customers/1005123272/orders > {'X-Request-Id': '85ffa95c-d6c8-4362-8fad-cc5a388e43e7', 'X-Correlation-Id': '85ffa95c-d6c8-4362-8fad-cc5a388e43e7', 'x-api-key': '****', 'x-gw-ims-client-id': '****', 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': '****'} {'orderType': 'NEW', 'externalReferenceId': 'reseller_account_name;1001234', 'currencyCode': 'EUR', 'lineItems': [{'extLineItemNumber': 1, 'offerId': '65304579CA02A12', 'quantity': 1}]}" But in the preview order, this discount has been previously passed from the Adobe API: offerID 65304521CA02A12 for quantity 1, so the issue is in Adobe side: "2023-10-03T14:47:36.006Z","PR-1234-1234-1234-001 Response 200 OK on POST https://partners.adobe.io/v3/customers/1005123272/orders < {'Server': 'openresty', 'Date': 'Tue, 03 Oct 2023 14:47:35 GMT', 'Content-Type': 'application/json;charset=UTF-8', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'x-request-id': 'a44f1105-4b53-41e4-9df1-194f6fb6daec', 'vary': 'origin,access-control-request-method,access-control-request-headers,accept-encoding', 'content-encoding': 'gzip', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET, POST, PUT, PATCH,DELETE, OPTIONS', 'Access-Control-Allow-Headers': 'Authorization,Content-Type,X-Api-Key,User-Agent,If-Modified-Since,X-Request-Id'} {'referenceOrderId': '', 'externalReferenceId': 'Reseller_account_name;1001234', 'orderId': '', 'customerId': '1005123456', 'currencyCode': 'EUR', 'orderType': 'PREVIEW', 'status': '', 'lineItems': [{'extLineItemNumber': 1, 'offerId': '65304579CA02A12', 'quantity': 1, 'subscriptionId': '', 'status': ''}], 'creationDate': '2023-10-03T14:47:35Z'} 0:00:01.075045" "2023-10-03T14:47:34.929Z","PR-1234-1234-1234-001 Request POST /v3/customers/1005123272/orders > {'X-Request-Id': 'a44f1105-4b53-41e4-9df1-194f6fb6daec', 'X-Correlation-Id': 'a44f1105-4b53-41e4-9df1-194f6fb6daec', 'x-api-key': '****', 'x-gw-ims-client-id': '****', 'Accept': 'application/json', 'Content-Type': 'application/json', 'Authorization': '****'} {'orderType': 'PREVIEW', 'externalReferenceId': 'Reseller_account_name;1001234', 'currencyCode': 'EUR', 'lineItems': [{'extLineItemNumber': 1, 'offerId': '65304579CA01A12', 'quantity': 1}]}" Resolution Please report this to Adobe asking why this response in the preview order, which is causing the new order to be rejected when using the values of the preview order.
-
Database updates for upgrade to or through BSS 21.14
Original Publishing Date: 2023-07-28 The upgrade to BSS 21.14 brings several changes related to the OrderLog table in the BSS database: a new column to the table, a new view, a new periodic task that will populate the new column: "OrderLog Bigint migration task". You can use this task to check the number of processed rows and rows to process. Note: We recommend to monitor that this task does not fail after the upgrade. After the upgrade to 21.14 or through this version, for example, from 21.12 to 21.15, you need to perform manual actions to create indexes. Depending on whether you do this during a maintenance window or not, the exact steps will be different. Index creation can take significant time to complete depending on the OrderLog table size, the infrastructure, the current database load, and the number of long running operations.. You can use a test query to learn approximate time required for your installation. Calculating approximate time required for index creation Note: The estimations are only valid for creating indexes within a maintenance window. To measure the time needed for the index creation procedure, complete these steps: Download the index_test.sql script to a workstation with access to the BSS database and psql utility installed. Execute the script. It will create a test table OrderLog_test, populate it with 20 million rows from the original OrderLog table and create indexes for them. It will also display how much time the operation took and the predictions for time required to create indexes in the OrderLog table. After that, the script drops the test table. If something went wrong, use the index_test_cleanup.sql that will just drop the test table. Creating indexes within a maintenance window To create indexes within a maintenance window after the upgrade to 21.14 or through that version, complete the steps below: Download the create_indexes_NON_CONCURRENTLY.zip file and unpack its content to a workstation with access to the BSS database and psql utility installed. Update the unpacked create_indexes_NON_CONCURRENTLY.sh file with the credentials to the database. Note: During execution of this script, the OrderLog table will be locked for for insertions and updates. Make sure to run this script within a maintenance window to avoid data loss. Execute create_indexes.sh. The script will create indexes in the newly added view. It can run for several hours, depending on the OrderLog table size and the infrastructure. Creating indexes outside of a maintenance window Note: The estimations provided by the index_test.sql script are not valid for this index creation type. To create indexes outside of a maintenance window after the upgrade to 21.14 or through that version, complete the steps below: Download the create_indexes.zip file and unpack its content to a workstation with access to the BSS database and psql utility installed. Update the unpacked create_indexes.sh file with the credentials to the database. Execute create_indexes.sh. The script will create indexes in the newly added view. It can run for several hours, depending on the OrderLog table size, the infrastructure, the current database load, and the number of long running operations. Monitoring migration status You can check the process of migration by checking the status and the output of the last task execution of the OrderLog Bigint migration task. These are the metrics that are available there: rowsUpdated. The number of migrated rows. rowsRest. The number of rows yet to be migrated. percentUpdated. Migration progress percentage. isFinished. If true, this means the migration has completed. pkIndexStatus. Indicates the status of the PK index. After indexes are created using the attached script, this metric value must be: "#2 Exists, OK, not PK". viewIndexStatus. Indicates the status of the temporary view index. After indexes are created using the attached script, this metric value must be: "#2 Exists, OK". Note: If the pkIndexStatus or viewIndexStatus metric have values other than "#2 Exists ...", or if they contain "INVALID", you need to create indexes by completing the above instructions one more time. During the next major CloudBlue update, the view will be deleted and necessary column renaming will be done. The newly added records will be added using the new view with the BigInt index column.
-
Order stuck in Date validation failed - Activation Date cannot be in the future
Original Publishing Date: 2023-11-02 Symptoms Place a NCE order that gets completed on Connect side, but on CloudBlue Commerce (CBC) falls into "Date Validation failed" with following error message: Activation Date cannot be in the future. Check the "provisioning items" tab and see under "Activation Date" that it is near future or even already passed. On the Operations side of the platform, under task manager, the "Activate scheduled subscription changes" task for this order is already successful, but its finish time is before the Activation Date from the order. Cause This is due the fact that current NCE plan has no Vendor Timezone configured, or it is configured in different timezone than the rest of the platform. For NCE Service Plans it is required to have Vendor Timezone correctly configured. Resolution Correct Vendor Timezone through PPR import. If after update Service Plan the issue persists, please kindly contact CloudBlue Technical Support.
-
I cannot reset the password on CloudBlue Connect Portal
Original Publishing Date: 2023-11-03 Symptoms I tried to reset the password on the CloudBlue Connect Portal (https://portal.connect.cloudblue.com), but no email was sent to me to reset my password. Cause Note that the email with your confirmation code might be filtered by your email services. Resolution Therefore, make sure to check your spam or junk email folder to allow emails from no-reply@connect.cloudblue.com.
-
Upcoming Service Experience Enhancements
Original Publishing Date: 2023-11-06 Dear Valued Customers, We hope this email finds you well. As part of our ongoing commitment to providing exceptional service and streamlining your experience, we are thrilled to announce a significant enhancement to the way you interact with our support and managed services. What's Happening? We are consolidating our current platforms — FreshDesk (Support) and PSA (Managed Services) — into a new, unified Services Portal. This transition is designed to create a more seamless, efficient, and powerful experience for you. As part of this process, all open incidents (cloudblue.freshdesk.com) and service requests (portal.cloudblue.com) will be seamlessly migrated to the new Services Portal. For historical closed tickets, only incidents will be migrated at this time. When and Where? This update will take place on Saturday, November 18th, at 20:00 UTC and completed by November 19th at 00:00 UTC. During this time, we will be merging portal.cloudblue.com and cloudblue.freshdesk.com into a single, convenient portal: support.cloudblue.com. Should you have a request or issue at this time, please call us directly via the support line +1 (855) 920-2583. Once your users have been enabled in the new Services Portal, an activation email will be sent to you to complete the user enablement process. At which time, all new requests must be raised in the new Services Portal using your existing support codes. Why This Matters Our goal is to enhance your experience by unifying our services behind a single, more robust portal. This change not only simplifies your access but also brings you more powerful features that will be enabled over the coming weeks. This unified portal is the next step in our commitment to providing you with world-class support and services. What Are the Benefits? Streamlined Access: One login, one interface, one team serving you, one seamless experience. Process Evolution: Easy approvals within the system for upgrade approvals and scheduling. Service Catalog: Requests are even easier to understand with “success-based outcomes” to ensure effective results. Enhanced Features: Receive new release announcements and perform approvals for changes, with many more features in the coming weeks. Next Steps and Resources While the new portal is very similar to the current support interface, we encourage you to familiarize yourself with its enhanced features. Comprehensive documentation for your team is available here: Service Portal End User Guide. We understand that change can bring questions. Our team is here to support you during this transition. If you have any concerns or need assistance, please reach out to your Technical Account Manager who can provide an overview of the change. Thank you for your continued partnership and trust in our services. We are excited about these changes and are confident that this new unified portal will significantly improve your experience with us. Warm Regards,
-
MPN changed in product definition on Vendor side
Original Publishing Date: 2023-11-08 Symptoms Auto-renewal setting generates an empty request to Connect. The product does not have editable parameters for Change Requests and the subscription does not have any Pay as You Go items. Cause If the Manufacturer Part Number (MPN) has been changed in the item definition (Subscription Request > Reservation) between two requests, Connect does not reject the Change Request with no item changes. If the MPN for an item is changed between two requests (the last request is the change one with no item changes) in the product definition on the vendor side, Connect considers that the MPN should be updated for the existing subscription and allows the change request, even if they do not have any other changes. So this case is valid from Connect POV. Resolution If you have such requests, it is fine. The request is valid and everything is fine, it was not an "empty" request. The MPN value was updated to match vendor's side.