記錄刪除工單 work-order-endpoint
使用資料衛生API中的/workorder端點在Adobe Experience Platform中建立、檢視和管理記錄刪除工單。 工單可讓您控制、監控及追蹤資料集中的資料移除作業,協助您維持資料品質,並支援組織的資料控管標準。
快速入門
開始之前,請參閱總覽以瞭解必要的標頭、如何讀取範例API呼叫,以及到何處尋找相關檔案。
配額與處理時間表 quotas
記錄刪除工單受每日和每月識別碼提交限制的約束,此限制由您組織的授權權益決定。 這些限制同時適用於UI和API型記錄刪除請求。
依產品的每月提交權利 quota-limits
下表顯示產品和權益層級的識別碼提交限制。 對於每種產品,每月上限是兩個值中較小者:固定的識別碼上限,或與授權資料量繫結的百分比型臨界值。 實際上,根據組織的實際可定址對象或Adobe Customer Journey Analytics列權益,大多陣列織的每月上限較低。
- 配額在每個日曆月的第一天重設。 未使用的配額 不會 延續。
- 配額使用量是以貴組織針對 已提交識別碼 的每月授權為基礎。 配額不是由系統護欄強制執行,但可能被監視和檢閱。
- 記錄刪除工單容量是共用服務。 您的每月上限反映了Real-Time CDP、Adobe Journey Optimizer、Customer Journey Analytics和任何適用的Shield附加元件的最高權益。
處理識別碼提交的時間表 sla-processing-timelines
提交之後,系統會根據您的權益層次,將記錄刪除工單排入佇列並進行處理。
如果您的組織需要更高的限制,請聯絡您的Adobe代表以要求軟體權利檔案審查。
清單記錄刪除工單 list
擷取貴組織中資料衛生作業的記錄刪除工單的分頁清單。 使用查詢引數篩選結果。 每個工單記錄都包含動作型別(例如identity-delete)、狀態、相關資料集和使用者詳細資訊,以及稽核中繼資料。
API格式
GET /workorder
下表說明可用於列出記錄刪除工單的查詢引數。
searchtypeidentity-delete)。status列舉:
received,validated,submitted,ingested,completed,failedauthordisplayNamedescriptionworkorderIdsandboxName*包含所有沙箱。fromDatetoDate。toDatefromDate。filterDatepagelimitorderBy+或-首碼進行遞增/遞減。 範例:orderBy=-datasetName。properties要求
下列請求會擷取所有已完成的記錄刪除工單,限製為每頁兩次:
curl -X GET \
"https://platform.adobe.io/data/core/hygiene/workorder?status=completed&limit=2" \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
回應
成功的回應會傳回記錄刪除工單的分頁清單。
{
"results": [
{
"workorderId": "DI-1729d091-b08b-47f4-923f-6a4af52c93ac",
"orgId": "9C1F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-4cfabf02-c22a-45ef-b21f-bd8c3d631f41",
"action": "identity-delete",
"createdAt": "2034-03-15T11:02:10.935Z",
"updatedAt": "2034-03-15T11:10:10.938Z",
"operationCount": 3,
"targetServices": [
"profile",
"datalake",
"identity",
"ajo"
],
"status": "received",
"createdBy": "a.stark@acme.com <a.stark@acme.com> BD8C3D631F41@acme.com",
"datasetId": "a7b7c8f3a1b8457eaa5321ab",
"datasetName": "Acme_Customer_Exports",
"displayName": "Customer Identity Delete Request",
"description": "Scheduled identity deletion for compliance"
}
],
"total": 1,
"count": 1,
"_links": {
"next": {
"href": "https://platform.adobe.io/workorder?page=1&limit=2",
"templated": false
},
"page": {
"href": "https://platform.adobe.io/workorder?limit={limit}&page={page}",
"templated": true
}
}
}
下表說明回應中的特性。
resultsworkorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServices["datalake", "identity", "profile", "ajo"])。 對於僅限Customer Journey Analytics的組織(沒有即時客戶設定檔權利),唯一有效值為["datalake"]。statusreceived、validated、submitted、ingested、completed和failed。createdBydatasetIdALL。 當要求使用僅設定檔模式時,這個值為ALL。datasetNamedisplayNamedescriptiontotalcount_linksnexthref (字串)和templated (布林值)的物件。pagehref (字串)和templated (布林值)的物件,用於頁面導覽。建立記錄刪除工單 create
若要從單一資料集、多個資料集或所有資料集中刪除與一或多個身分相關聯的記錄,請對/workorder端點發出POST要求。
工單會以非同步方式處理,並在提交後顯示在工單清單中。 自2026年3月Experience Platform發行版本起,所有客戶一般都能使用多資料集和僅限設定檔(目標服務)選項。
API格式
POST /workorder
- 資料集結構描述必須定義主要身分或身分對應。您只能從關聯XDM結構描述定義主要身分或身分對應的資料集中刪除記錄。
- 未掃描次要身分。如果資料集包含多個身分欄位,則只會使用主要身分進行比對。 無法根據非主要身分定位或刪除記錄。
- 略過沒有填入主要身分的記錄。如果記錄未填入主要身分中繼資料,則無法刪除。
- 在身分設定之前擷取的資料不合格。如果主要身分欄位在資料擷取後新增到結構描述,則無法透過記錄刪除工作單來刪除先前擷取的記錄。
身分裝載格式(namespacesIdentities或identities)
要求內文必須包含下列其中一個。
namespacesIdentitiesnamespace (例如{ "code": "email" })和ids (識別字串陣列)的物件陣列。identitiesnamespace (例如{ "code": "email" })和單一id (字串)的物件陣列。如果您傳送兩個屬性、兩個屬性,或為您包含的屬性提供空陣列,API會傳回 HTTP 400 (錯誤請求) 及下列其中一個訊息:
- 提供的兩個屬性:
"Identities and NamespacesIdentities are not allowed at the same time" - 未提供或空白清單:
"Identities are Empty for Delete Identity request."
要求
以下請求會從特定資料集中刪除與指定電子郵件地址相關聯的所有記錄。 它使用建議的namespacesIdentities格式。
curl -X POST \
https://platform.adobe.io/data/core/hygiene/workorder \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'Content-Type: application/json' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"displayName": "Acme Loyalty - Customer Data Deletion",
"description": "Delete all records associated with the specified email addresses from the Acme_Loyalty_2023 dataset.",
"action": "delete_identity",
"datasetId": "7eab61f3e5c34810a49a1ab3",
"namespacesIdentities": [
{
"namespace": {
"code": "email"
},
"ids": [
"alice.smith@acmecorp.com",
"bob.jones@acmecorp.com",
"charlie.brown@acmecorp.com"
]
}
]
}'
下表說明建立記錄刪除工單的特性。
displayNamedescriptionactiondelete_identity。datasetIdALL、單一資料集ID,或以逗號分隔的兩個或多個資料集ID清單(例如"id1,id2,id3")。 您無法將ALL與特定ID結合。 單一資料集請求的行為與先前相同,多資料集請求會從每個列出的資料集中刪除身分,並ALL鎖定每個資料集。 資料集必須具有主要身分或身分對應。 如果身分對應存在,則會顯示為名為identityMap的頂層欄位。注意:資料集資料列的身分對應中可能有許多身分,但只能將一個標示為主要身分。 必須包含
"primary": true以強制id符合主要身分。使用
targetServices進行僅設定檔刪除時,datasetId必須是ALL。targetServices["datalake", "identity", "profile", "ajo"])。 擁有Customer Journey Analytics但沒有即時客戶設定檔權益的組織只能使用["datalake"]。 若要將刪除限製為僅與設定檔相關的資料,並保留資料湖不變,請將此項設為["identity", "profile", "ajo"] (以任何順序)。 此僅設定檔模式需要Real-Time CDP或Adobe Journey Optimizer權益,且datasetId必須為ALL。identitiesidentities或namespacesIdentities其中之一。物件陣列,每個具有namespace (具有code的物件,例如"email")和id (單一識別字串)。 接受此項,以便回溯相容及由轉換指令碼產生。 此服務會在內部標準化此格式;行為相同。 請參閱上述身分裝載格式。回應
成功的回應會傳回新記錄刪除工單的詳細資料。
{
"workorderId": "DI-95c40d52-6229-44e8-881b-fc7f072de63d",
"orgId": "8B1F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-c61bec61-5ce8-498f-a538-fb84b094adc6",
"action": "identity-delete",
"createdAt": "2035-06-02T09:21:00.000Z",
"updatedAt": "2035-06-02T09:21:05.000Z",
"operationCount": 1,
"targetServices": [
"profile",
"datalake",
"identity",
"ajo"
],
"status": "received",
"createdBy": "c.lannister@acme.com <c.lannister@acme.com> 7EAB61F3E5C34810A49A1AB3@acme.com",
"datasetId": "7eab61f3e5c34810a49a1ab3",
"datasetName": "Acme_Loyalty_2023",
"displayName": "Loyalty Identity Delete Request",
"description": "Schedule deletion for Acme loyalty program dataset"
}
下表說明回應中的特性。
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL。 對於多資料集請求,值會反映所提交的逗號分隔清單或單一ID。datasetNamedisplayNamedescription回應targetServices值會回應您的要求,或在省略時顯示完整的預設設定(請參閱上方的回應表格)。
多資料集和僅限設定檔(API) multi-dataset-profile-only
以下選項只能透過API使用,資料衛生UI中不支援。 這類許可權可控制哪些資料集和哪些服務會處理刪除,從而啟用多資料集提交和僅限設定檔的目標服務請求。
下表概述每個選項的請求內文和行為變更。
datasetId中使用逗號分隔清單(例如"id1,id2,id3")。 單一ID或ALL未變更。ALL時的一個資料集,或是從所有資料集中刪除)。targetServices並包含["identity", "profile", "ajo"] (任何順序)。 需要datasetId: "ALL"。多資料集請求
datasetId欄位會以逗號分割:使用單一ID (與之前相同的行為)、以逗號分隔的ID清單或常值ALL。 若要以一個工作順序從多個特定資料集中刪除身分,請提供逗號分隔清單:
"datasetId": "6707eb36eef4d42ab86d9fbe,6643f00c16ddf51767fcf780"
接著會從每個列出的資料集中刪除身分。 單一資料集要求如常運作;使用ALL來鎖定每個資料集。 值必須剛好是下列其中一項: ALL、單一資料集ID,或兩個以上以逗號分隔的資料集ID (不將ALL與特定ID結合)。
僅限設定檔(目標服務)
若要在保持資料湖不受影響時僅移除身分和設定檔相關資料,請以任意順序包含具有這三個值的targetServices: identity、profile和ajo。 明確包括身分、設定檔和AJO;排除資料湖。 在此模式中,datasetId必須是ALL (使用案例是完整設定檔刪除,而不是每個資料集片段)。
下列範例會建立僅設定檔記錄刪除工單:
curl -X POST \
"https://platform.adobe.io/data/core/hygiene/workorder" \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'x-sandbox-id: {SANDBOX_ID}' \
-d '{
"action": "delete_identity",
"datasetId": "ALL",
"displayName": "Profile-only delete for specified identity",
"description": "Delete identity, profile, and AJO data only; datalake unchanged.",
"targetServices": ["identity", "profile", "ajo"],
"namespacesIdentities": [
{
"namespace": { "code": "email" },
"ids": ["user@example.com"]
}
]
}'
多資料集或僅限設定檔要求的成功回應會遵循與其他工單回應相同的形狀。 傳回的datasetId和targetServices反映請求中的值(或省略targetServices時的完整預設清單),因此您可以確認已提交的內容。
identity-delete。 如果API變更為使用不同的值(例如delete_identity),本檔案將會相應地更新。針對記錄刪除請求將ID清單轉換為JSON (#convert-id-lists-to-json-for-record-delete-requests)
當您的識別碼位於CSV、TSV或TXT檔案中時,使用轉換指令碼為/workorder端點產生必要的JSON裝載。 此方法在處理現有資料檔案時特別實用。 如需現成的指令碼和指示,請參閱csv至資料衛生GitHub存放庫。
指令碼會輸出 identities 格式 — 每個具有id的物件一個namespace。 API接受此格式的現狀;您可以直接在POST內文中將產生的JSON傳送給/workorder,而不需要進行轉換。 建議的格式為namespacesIdentities;請參閱建立記錄刪除工單和身分裝載格式。
產生JSON裝載
下列bash指令碼範例示範如何以Python或Ruby執行轉換指令碼:
| code language-bash |
|---|
|
| code language-bash |
|---|
|
下表說明bash指令碼中的引數。
verbosecolumnnamespaceemail)。 產生的JSON會在每個物件的namespace.code屬性中使用此專案。dataset-idALL。descriptionoutput-dir以下範例顯示從CSV、TSV或TXT檔案轉換而來的成功JSON裝載。 它包含與指定名稱空間關聯的記錄,並用於刪除由電子郵件地址識別的記錄。
{
"action": "delete_identity",
"datasetId": "66f4161cc19b0f2aef3edf10",
"displayName": "output/sample-big-001.json",
"description": "a simple sample",
"identities": [
{
"namespace": {
"code": "email"
},
"id": "1"
},
{
"namespace": {
"code": "email"
},
"id": "2"
}
]
}
下表說明JSON裝載中的屬性。
actiondelete_identity。datasetIdALL。displayNamedescriptionidentities物件陣列,每個都包含:
namespace:物件具有code屬性,指定了身分名稱空間(例如,「email」)。id:要刪除此名稱空間的身分值。
將產生的JSON資料提交至/workorder端點
指令碼輸出使用identities格式,API接受其原樣。 當您將-d POST要求傳送至curl端點時,請使用轉換的JSON裝載作為要求內文(/workorder)。 如需完整的請求選項和驗證規則,請參閱建立記錄刪除工單。
擷取特定記錄刪除工單的詳細資料 lookup
向/workorder/{WORKORDER_ID}發出GET要求,擷取特定記錄刪除工單的資訊。 回應包括動作型別、狀態、關聯的資料集和使用者資訊,以及稽核中繼資料。
API格式
GET /workorder/{WORKORDER_ID}
{WORK_ORDER_ID}要求
curl -X GET \
https://platform.adobe.io/data/core/hygiene/workorder/DI-6fa98d52-7bd2-42a5-bf61-fb5c22ec9427 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
回應
成功的回應會傳回指定記錄刪除工單的詳細資料。
{
"workorderId": "DI-6fa98d52-7bd2-42a5-bf61-fb5c22ec9427",
"orgId": "3C7F2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-dbe3ffad-cb0b-401f-91ae-01c189f8e7b2",
"action": "identity-delete",
"createdAt": "2037-01-21T08:25:45.119Z",
"updatedAt": "2037-01-21T08:30:45.233Z",
"operationCount": 3,
"targetServices": [
"ajo",
"profile",
"datalake",
"identity"
],
"status": "received",
"createdBy": "g.baratheon@acme.com <g.baratheon@acme.com> C189F8E7B2@acme.com",
"datasetId": "d2f1c8a4b8f747d0ba3521e2",
"datasetName": "Acme_Marketing_Events",
"displayName": "Marketing Identity Delete Request",
"description": "Scheduled identity deletion for marketing compliance"
}
下表說明回應中的特性。
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatuscreatedBydatasetIdALL)。datasetNamedisplayNamedescription更新記錄刪除工單 update
藉由對name端點發出PUT要求,更新記錄刪除工作順序的description和/workorder/{WORKORDER_ID}。
API格式
PUT /workorder/{WORKORDER_ID}
下表說明此請求的引數。
{WORK_ORDER_ID}要求
curl -X PUT \
https://platform.adobe.io/data/core/hygiene/workorder/DI-893a6b1d-47c2-41e1-b3f1-2d7c2956aabb \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"name": "Updated Marketing Identity Delete Request",
"description": "Updated deletion request for marketing data"
}'
下表說明您可以更新的特性。
namedescription回應
成功的回應會傳回更新的工單請求。
{
"workorderId": "DI-893a6b1d-47c2-41e1-b3f1-2d7c2956aabb",
"orgId": "7D4E2AC143214567890ABCDE@AcmeOrg",
"bundleId": "BN-12abcf45-32ea-45bc-9d1c-8e7b321cabc8",
"action": "identity-delete",
"createdAt": "2038-04-15T12:14:29.210Z",
"updatedAt": "2038-04-15T12:30:29.442Z",
"operationCount": 2,
"targetServices": [
"profile",
"datalake"
],
"status": "received",
"createdBy": "b.tarth@acme.com <b.tarth@acme.com> 8E7B321CABC8@acme.com",
"datasetId": "1a2b3c4d5e6f7890abcdef12",
"datasetName": "Acme_Marketing_2024",
"displayName": "Updated Marketing Identity Delete Request",
"description": "Updated deletion request for marketing data",
"productStatusDetails": [
{
"productName": "Data Management",
"productStatus": "waiting",
"createdAt": "2024-06-12T20:11:18.447747Z"
},
{
"productName": "Identity Service",
"productStatus": "success",
"createdAt": "2024-06-12T20:36:09.020832Z"
},
{
"productName": "Profile Service",
"productStatus": "waiting",
"createdAt": "2024-06-12T20:11:18.447747Z"
},
{
"productName": "Journey Orchestrator",
"productStatus": "success",
"createdAt": "2024-06-12T20:12:19.843199Z"
}
]
}
workorderIdorgIdbundleIdactioncreatedAtupdatedAtoperationCounttargetServicesstatusreceived、validated、submitted、ingested、completed和failed。createdBydatasetIdALL)。datasetNamedisplayNamedescriptionproductStatusDetails列出請求下游處理序目前狀態的陣列。 每個物件包含:
productName:下游服務的名稱。productStatus:下游服務的目前處理狀態。createdAt:服務發佈最新狀態時的時間戳記。
將工單提交至下游服務以開始處理之後,即可使用此屬性。