{"id":3524,"date":"2012-02-03T15:25:28","date_gmt":"2012-02-03T20:25:28","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=3524"},"modified":"2012-02-03T15:25:28","modified_gmt":"2012-02-03T20:25:28","slug":"soa-11g-designing-human-tasks","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=3524","title":{"rendered":"SOA 11g: Designing Human Tasks"},"content":{"rendered":"<div class='toc wptoc'>\n<h2>Contents<\/h2>\n<ol class='toc-odd level-1'>\n\t<li>\n\t\t<a href=\"#Introduction\">Introduction<\/a>\n\t<\/li>\n\t<li>\n\t\t<a href=\"#How_to_Access_the_Sections_of_the_Human_Task_Editor\">How to Access the Sections of the Human Task Editor<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#General_Section\">General Section<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Data_Section\">Data Section<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Assignment_Section\">Assignment Section<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Presentation\">Presentation<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Deadlines\">Deadlines<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Notification\">Notification<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Access_Section\">Access Section<\/a>\n\t\t\t<\/li>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Events\">Events<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#Associate_Human_Task_Service_Component_with_a_BPEL_Process\">Associate Human Task Service Component with a BPEL Process<\/a>\n\t\t<ol class='toc-even level-2'>\n\t\t\t<li>\n\t\t\t\t<a href=\"#Human_Task_Dialog\">Human Task Dialog<\/a>\n\t\t\t<\/li>\n\t\t<\/ol>\n\t<li>\n\t\t<a href=\"#References\">References<\/a>\n\t<\/li>\n<\/ol>\n<\/ol>\n<\/div>\n<div class='wptoc-end'>&nbsp;<\/div>\n<span id=\"Introduction\"><h2>Introduction<\/h2><\/span>\n<p>* Human Task Editor: used to model task metadata.<br \/>\n* Define metadata for human task in either of two ways:<br \/>\n&#8211; BPEL Designer: drag a human task into a BPEL process.<br \/>\n&#8211; SOA Composite Editor: drag a human task service component into the composite application.<br \/>\n~ Select <strong>Create Composite Service with SOAP Bindings<\/strong> checkbox to create Standalone human task.<br \/>\n~ <strong>De<\/strong>select to create BPEL associated human task.<\/p>\n<span id=\"\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humanworkflow_standalone.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humanworkflow_standalone-300x192.jpg\" alt=\"\" title=\"soa11g_humanworkflow_standalone\" width=\"300\" height=\"192\" class=\"aligncenter size-medium wp-image-3525\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humanworkflow_standalone-300x192.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humanworkflow_standalone.jpg 879w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Human task definition is saved in <em>.task<\/em> file.<br \/>\n* Steps:<br \/>\n&#8211; Create\/model human task service component in SOA Composite Editor.<br \/>\n&#8211; Associate it with BPEL process (creates a task service partner link).<br \/>\n&#8211; Generate task form for displaying human task during runtime in BPM Worklist application.<\/p>\n<span id=\"How_to_Access_the_Sections_of_the_Human_Task_Editor\"><h2>How to Access the Sections of the Human Task Editor<\/h2><\/span>\n<p>* SOA Composite Editor: double-click the Human Task icon<br \/>\n* Oracle BPEL Designer: double-click the Human Task icon and click the Edit icon in the upper right corner.<\/p>\n<span id=\"General_Section\"><h3>General Section<\/h3><\/span>\n<p>* Define task details such as title, task outcomes, owner, and other attributes.<\/p>\n<span id=\"_1\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_general.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_general-300x175.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_general\" width=\"300\" height=\"175\" class=\"aligncenter size-medium wp-image-3526\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_general-300x175.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_general.jpg 641w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Data_Section\"><h3>Data Section<\/h3><\/span>\n<p>* Enables you to define the structure (message elements) of the task payload (the data in the task).<\/p>\n<span id=\"_2\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_data.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_data-300x60.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_data\" width=\"300\" height=\"60\" class=\"aligncenter size-medium wp-image-3527\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_data-300x60.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_data.jpg 749w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Assignment_Section\"><h3>Assignment Section<\/h3><\/span>\n<p>* Enables you to assign participants to the task and create a policy for routing the task through the workflow.<\/p>\n<span id=\"_3\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_assignment.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_assignment-300x125.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_assignment\" width=\"300\" height=\"125\" class=\"aligncenter size-medium wp-image-3528\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_assignment-300x125.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_assignment.jpg 981w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Presentation\"><h3>Presentation<\/h3><\/span>\n<p>* Enables you to specify the following settings:<br \/>\n&#8211; Multilingual settings.<br \/>\n&#8211; WordML and custom style sheets for attachments.<\/p>\n<span id=\"_4\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_presentation.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_presentation-300x47.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_presentation\" width=\"300\" height=\"47\" class=\"aligncenter size-medium wp-image-3529\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_presentation-300x47.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_presentation.jpg 975w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Deadlines\"><h3>Deadlines<\/h3><\/span>\n<p>* Enables you to specify the expiration duration of a task, custom escalation Java classes, and due dates.<\/p>\n<span id=\"_5\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_deadlines.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_deadlines-300x108.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_deadlines\" width=\"300\" height=\"108\" class=\"aligncenter size-medium wp-image-3530\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_deadlines-300x108.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_deadlines.jpg 865w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Notification\"><h3>Notification<\/h3><\/span>\n<p>* Enables you to create and send notifications when a user is assigned a task or informed that the status of the task has changed.<\/p>\n<span id=\"_6\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_notification.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_notification-300x92.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_notification\" width=\"300\" height=\"92\" class=\"aligncenter size-medium wp-image-3531\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_notification-300x92.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_notification.jpg 971w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"_7\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_notification_adv.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_notification_adv-300x146.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_notification_adv\" width=\"300\" height=\"146\" class=\"aligncenter size-medium wp-image-3532\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_notification_adv-300x146.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_notification_adv.jpg 967w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Access_Section\"><h3>Access Section<\/h3><\/span>\n<p>* Enables you to specify access rules for task content and task actions, workflow signature policies, and assignment restrictions.<br \/>\n&#8211; Access task content:<\/p>\n<span id=\"_8\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_content.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_content-300x157.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_access_content\" width=\"300\" height=\"157\" class=\"aligncenter size-medium wp-image-3533\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_content-300x157.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_content.jpg 948w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>&#8211; Access task actions:<\/p>\n<span id=\"_9\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_action.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_action-300x157.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_access_action\" width=\"300\" height=\"157\" class=\"aligncenter size-medium wp-image-3534\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_action-300x157.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_action.jpg 951w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>&#8211; Specify restrictions on task assignment:<br \/>\n~ In the Access section, click Configure Restricted Assignments.<br \/>\n~ In the Configure Restricted Assignment dialog, enter the class name.<br \/>\n~ class must implement the oracle.bpel.services.workflow.task.<strong>IRestrictedAssignmentCallback <\/strong>interface.<\/p>\n<span id=\"_10\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_custclass.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_custclass-300x156.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_access_custclass\" width=\"300\" height=\"156\" class=\"aligncenter size-medium wp-image-3539\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_custclass-300x156.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_access_custclass.jpg 950w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Events\"><h3>Events<\/h3><\/span>\n<p>* Enables you to specify callback classes and task and routing assignments in BPEL callbacks.<br \/>\n* Java callbacks: The callback class must implement the interface oracle.bpel.services.workflow.task.<strong>IRoutingSlipCallback<\/strong>. Make the callback class available in the class path of the server.<br \/>\n* You must create an Oracle Mediator service component in which you reference the EDL file and subscribe to the appropriate business event.<br \/>\n* A file-based MDS connection is required so that the EDL file can be located. The location for the file-based MDS is JDev_Home\\jdeveloper\\integration\\seed.<br \/>\n* <strong>Allow task and routing customization in BPEL callbacks<\/strong> checkbox: allows fine-grained callbacks (for example, onTaskUpdate or onTaskEscalated) to be sent to the BPEL process.<br \/>\n* <strong>Disable BPEL callbacks<\/strong> checkbox:<br \/>\n&#8211; disables BPEL callbacks.<br \/>\n&#8211; enables you to invoke the task service without waiting for a reply.<\/p>\n<span id=\"_11\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_events.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_events-300x137.jpg\" alt=\"\" title=\"soa11g_humtaskeditor_events\" width=\"300\" height=\"137\" class=\"aligncenter size-medium wp-image-3540\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_events-300x137.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtaskeditor_events.jpg 968w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"Associate_Human_Task_Service_Component_with_a_BPEL_Process\"><h2>Associate Human Task Service Component with a BPEL Process<\/h2><\/span>\n<p>* Drag a human task activity into the BPEL process in Oracle BPEL Designer.<br \/>\n* Select the existing human task service component from the Task Definition list of the Create Human Task dialog.<\/p>\n<span id=\"_12\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_def.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_def-300x95.jpg\" alt=\"\" title=\"soa11g_humtask_def\" width=\"300\" height=\"95\" class=\"aligncenter size-medium wp-image-3552\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_def-300x95.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_def.jpg 726w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Or click the green plus icon to the right of the Task Definition list in the Create Human Task dialog to create a one human task service component.<\/p>\n<span id=\"_13\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_defnew.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_defnew-300x95.jpg\" alt=\"\" title=\"soa11g_humtask_defnew\" width=\"300\" height=\"95\" class=\"aligncenter size-medium wp-image-3553\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_defnew-300x95.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_defnew.jpg 726w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* When association is complete, a task service <strong>partner link<\/strong> is created in Oracle BPEL Designer. The task service exposes the operations required to act on a task.<\/p>\n<span id=\"Human_Task_Dialog\"><h3>Human Task Dialog<\/h3><\/span>\n<p>* General Tab:<\/p>\n<span id=\"_14\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_general.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_general-300x158.jpg\" alt=\"\" title=\"soa11g_humtask_general\" width=\"300\" height=\"158\" class=\"aligncenter size-medium wp-image-3554\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_general-300x158.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_general.jpg 733w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<p>* Advanced Tab:<\/p>\n<span id=\"_15\"><h6><a href=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_adv.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_adv-300x207.jpg\" alt=\"\" title=\"soa11g_humtask_adv\" width=\"300\" height=\"207\" class=\"aligncenter size-medium wp-image-3555\" srcset=\"https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_adv-300x207.jpg 300w, https:\/\/jianmingli.com\/wp\/wp-content\/uploads\/2011\/09\/soa11g_humtask_adv.jpg 735w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/h6><\/span>\n<span id=\"References\"><h2>References<\/h2><\/span>\n<p>* <a href=\"http:\/\/download.oracle.com\/docs\/cd\/E17904_01\/integration.1111\/e10224\/bp_hwfmodel.htm\">Designing Human Tasks<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction * Human Task Editor: used to model task metadata. * Define metadata for human task in either of two ways: &#8211; BPEL Designer: drag a human task into a BPEL process. &#8211; SOA Composite Editor: drag a human task &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=3524\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[100],"tags":[],"class_list":["post-3524","post","type-post","status-publish","format-standard","hentry","category-soa11g"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-UQ","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3524","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3524"}],"version-history":[{"count":10,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3524\/revisions"}],"predecessor-version":[{"id":4240,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/3524\/revisions\/4240"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3524"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3524"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3524"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}