{"id":517,"date":"2023-05-03T17:44:53","date_gmt":"2023-05-03T23:44:53","guid":{"rendered":"https:\/\/fbedolla.com\/?p=517"},"modified":"2023-05-03T17:44:56","modified_gmt":"2023-05-03T23:44:56","slug":"asignacion-automatica-de-almacen-a-cliente","status":"publish","type":"post","link":"https:\/\/fbedolla.com\/index.php\/2023\/05\/03\/asignacion-automatica-de-almacen-a-cliente\/","title":{"rendered":"Asignaci\u00f3n autom\u00e1tica de almac\u00e9n a cliente."},"content":{"rendered":"\n<p>Hablemos un poco de automatizaci\u00f3n de operaciones en Business Central.<\/p>\n\n\n\n<p>El escenario es: se quiere integrar un portal de ventas (ecommerce le llaman) a Business Central y uno de los problemas tiene que ver con el almac\u00e9n del cual se surtir\u00e1 la mercanc\u00eda en funci\u00f3n a la direcci\u00f3n del cliente.<\/p>\n\n\n\n<p>Link al video  en Youtube <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/youtu.be\/Ox9heMTsNnE\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/almaut-1024x576.jpg\" alt=\"\" class=\"wp-image-522\" srcset=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/almaut-1024x576.jpg 1024w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/almaut-300x169.jpg 300w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/almaut-768x432.jpg 768w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/almaut-816x459.jpg 816w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/almaut.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption><a href=\"https:\/\/youtu.be\/Ox9heMTsNnE\" title=\"\">https:\/\/youtu.be\/Ox9heMTsNnE<\/a><\/figcaption><\/figure>\n\n\n\n<p>El enfoque del usuario es que se debe de publicar los almacenes disponibles para que el cliente escoja de cual quiere que se le env\u00ede la mercanc\u00eda. Tambi\u00e9n se debe revisar si el producto tiene existencias o no en dicho almac\u00e9n y finalmente, si no hay un almac\u00e9n disponible, entonces redirigir al cliente con un distribuidor.<\/p>\n\n\n\n<p>En Business Central se puede definir cu\u00e1l es el almac\u00e9n principal de env\u00edos a cliente especific\u00e1ndolo en la ficha del cliente.<\/p>\n\n\n\n<p>Analizando el proceso, venderle a un cliente en l\u00ednea implica enviarle la mercanc\u00eda a un domicilio especifico desde el almac\u00e9n mas cercano para minimizar los costos operativos de la empresa. Esto choca completamente con darle al cliente la opci\u00f3n de que el escoja el almac\u00e9n de env\u00edo ya que no esta en su inter\u00e9s que sea el m\u00e1s econ\u00f3mico o cercano, francamente al cliente no deber\u00eda importarle eso.<\/p>\n\n\n\n<p>En la ficha de cliente tenemos un comportamiento muy espec\u00edfico que implica asignar datos en funci\u00f3n a un campo, el c\u00f3digo postal.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>field(91; \"Post Code\"; Code&#91;20])\r\n        {\r\n            Caption = 'Post Code';\r\n            TableRelation = IF (\"Country\/Region Code\" = CONST('')) \"Post Code\"\r\n            ELSE\r\n            IF (\"Country\/Region Code\" = FILTER(&lt;> '')) \"Post Code\" WHERE(\"Country\/Region Code\" = FIELD(\"Country\/Region Code\"));\r\n            ValidateTableRelation = false;\r\n\r\n            trigger OnLookup()\r\n            begin\r\n                OnBeforeLookupPostCode(Rec, PostCode);\r\n\r\n                PostCode.LookupPostCode(City, \"Post Code\", County, \"Country\/Region Code\");\r\n\r\n                OnAfterLookupPostCode(Rec, xRec, PostCode);\r\n            end;\r\n\r\n            trigger OnValidate()\r\n            var\r\n                IsHandled: Boolean;\r\n            begin\r\n                IsHandled := false;\r\n                OnBeforeValidatePostCode(Rec, PostCode, CurrFieldNo, IsHandled);\r\n                if not IsHandled then\r\n                    PostCode.ValidatePostCode(City, \"Post Code\", County, \"Country\/Region Code\", (CurrFieldNo &lt;> 0) and GuiAllowed);\r\n\r\n                OnAfterValidatePostCode(Rec, xRec);\r\n            end;\r\n        }\r\n<\/code><\/pre>\n\n\n\n<p>Al darse de alta el cliente en el sitio de comercio, se solicitan datos como su nombre, direcci\u00f3n donde reside o donde recibir\u00e1 la mercanc\u00eda, datos fiscales y al momento de pagar, se procesa la informaci\u00f3n para poder generar en Business Central el pedido y poder enviarlo y facturarlo.<\/p>\n\n\n\n<p>\u00bfQu\u00e9 proceso se sigue para esto?<\/p>\n\n\n\n<p>En el conector de Shopify de Microsoft que existe, el proceso indica que se sincronizan los clientes y los pedidos. Al sincronizar los pedidos, el sistema valida que el cliente exista, y gracias a una configuraci\u00f3n, si no existe lo crea sincronizando los clientes de Shopify \u201cjalando\u201d los datos y creando al cliente.<\/p>\n\n\n\n<p>Al momento de crear dicho cliente, llena datos, y uno de ellos es el c\u00f3digo postal, l\u00f3gicamente al llenar el dato, se ejecuta el validate del campo y busca la informaci\u00f3n relacionada y la aplica.<\/p>\n\n\n\n<p>\u00bfY si agregamos un campo en la tabla de c\u00f3digos postales y luego lo adjuntamos al proceso de validate?<\/p>\n\n\n\n<p>Extendamos la tabla de c\u00f3digos postales<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ &lt;summary>\r\n\/\/\/ TableExtension ShipLocExt (ID 50100) extends Record Post Code.\r\n\/\/\/ &lt;\/summary>\r\ntableextension 50100 ShipLocExt extends \"Post Code\"\r\n{\r\n    fields\r\n    {\r\n        field(50100; ShipLoc; Code&#91;10])\r\n        {\r\n            Caption = 'Shipment Location';\r\n            DataClassification = CustomerContent;\r\n            TableRelation = Location.Code;\r\n        }\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<p>Ahora procedemos a extender la p\u00e1gina relacionada para poder asignar los almacenes<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ &lt;summary>\r\n\/\/\/ PageExtension ShipLocPostCodesExt (ID 50100) extends Record Post Codes.\r\n\/\/\/ &lt;\/summary>\r\npageextension 50100 ShipLocPostCodesExt extends \"Post Codes\"\r\n{\r\n    layout\r\n    {\r\n        addlast(Control1)\r\n        {\r\n            field(ShipLoc; Rec.ShipLoc)\r\n            {\r\n                ApplicationArea = all;\r\n            }\r\n        }\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"215\" src=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image.png\" alt=\"\" class=\"wp-image-518\" srcset=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image.png 921w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-300x70.png 300w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-768x179.png 768w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-816x190.png 816w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/figure>\n\n\n\n<p>Y ahora viene el suscriptor para lo cual creamos una codeunit donde pondremos el c\u00f3digo de suscripci\u00f3n a los eventos<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ &lt;summary>\r\n\/\/\/ Codeunit ShipLocExtSubscribers (ID 50100).\r\n\/\/\/ &lt;\/summary>\r\ncodeunit 50100 ShipLocExtSubscribers\r\n{\r\n    &#91;EventSubscriber(ObjectType::Table, Database::Customer, 'OnAfterValidatePostCode', '', true, true)]\r\n    local procedure AsignLoc(var Customer: Record Customer)\r\n    var\r\n        PostCode: Record \"Post Code\";\r\n    begin\r\n        PostCode.Reset();\r\n        PostCode.SetRange(Code, Customer.\"Post Code\");\r\n        if PostCode.FindFirst() then begin\r\n            Customer.\"Location Code\" := PostCode.ShipLoc;\r\n            Customer.Modify(true);\r\n        end;\r\n    end;\r\n\r\n    &#91;EventSubscriber(ObjectType::Table, Database::\"Ship-to Address\", 'OnAfterValidatePostCode', '', true, true)]\r\n    local procedure StAAsignLoc(var ShipToAddress: Record \"Ship-to Address\"; var PostCode: Record \"Post Code\")\r\n    begin\r\n        PostCode.Reset();\r\n        PostCode.SetRange(Code, ShipToAddress.\"Post Code\");\r\n        if PostCode.FindFirst() then begin\r\n            ShipToAddress.\"Location Code\" := PostCode.ShipLoc;\r\n            ShipToAddress.Modify(true);\r\n        end;\r\n    end;\r\n}\r<\/code><\/pre>\n\n\n\n<p>Se agrega el suscriptor a la tabla de Ship-To Address lo que permite que cuando cambiemos la direcci\u00f3n de env\u00edo, se actualice el almac\u00e9n correspondiente, esto funciona tanto en la ficha de cliente como en el pedido de venta<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"325\" src=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-1.png\" alt=\"\" class=\"wp-image-519\" srcset=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-1.png 921w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-1-300x106.png 300w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-1-768x271.png 768w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-1-816x288.png 816w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/figure>\n\n\n\n<p>Entonces, \u00bfcu\u00e1l ser\u00eda el beneficio de este c\u00f3digo?<\/p>\n\n\n\n<p>En el sitio o portal de venta se crear\u00e1n los clientes y se pedir\u00e1 la informaci\u00f3n de la direcci\u00f3n de entrega, el campo de C\u00f3digo Postal deber\u00eda ser obligatorio en el portal de ventas y recordemos que, en M\u00e9xico, esta informaci\u00f3n es obligatoria para la facturaci\u00f3n, en caso de que el cliente no pueda deducir el gasto o no le interese, como sea deber\u00eda ser necesario poner el c\u00f3digo postal.<\/p>\n\n\n\n<p>Esta informaci\u00f3n ser\u00e1 insertada en BC al crear el cliente y las direcciones de env\u00edo.<\/p>\n\n\n\n<p>Luego, al crear el pedido, el proceso de integraci\u00f3n seria:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Crear cabecera de pedido<\/li><li>Elegir al cliente con lo que se valida la informaci\u00f3n de la ficha del cliente y asigna el almac\u00e9n de env\u00edo.<\/li><li>Si la direcci\u00f3n de env\u00edo es otra a la \u201cprincipal\u201d, al elegir la direcci\u00f3n de env\u00edo se actualizar\u00e1 autom\u00e1ticamente el almac\u00e9n.<\/li><\/ul>\n\n\n\n<p>Con esto cubrimos la necesidad de \u201casignar\u201d un almac\u00e9n de env\u00edo desde la alta del cliente. Ahora bien, \u00bfqu\u00e9 m\u00e1s podr\u00edamos hacer con esta idea? Pensemos en rutas de entrega por c\u00f3digos postales, usemos la misma tabla de extensi\u00f3n de c\u00f3digos postales para agregar la ruta y liguemos ese campo a una tabla de rutas.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ &lt;summary>\r\n\/\/\/ Table Shipping Routes (ID 50100).\r\n\/\/\/ &lt;\/summary>\r\ntable 50100 \"Shipping Routes\"\r\n{\r\n    Caption = 'Shipping Routes';\r\n    DataClassification = CustomerContent;\r\n\r\n    fields\r\n    {\r\n        field(1; \"Code\"; Code&#91;20])\r\n        {\r\n            Caption = 'Code';\r\n            DataClassification = CustomerContent;\r\n        }\r\n        field(2; Description; Text&#91;100])\r\n        {\r\n            Caption = 'Description';\r\n            DataClassification = CustomerContent;\r\n        }\r\n        field(3; \"Shipping Agent\"; Code&#91;20])\r\n        {\r\n            Caption = 'Shipping Agent';\r\n            DataClassification = CustomerContent;\r\n            TableRelation = \"Shipping Agent\".Code;\r\n        }\r\n    }\r\n    keys\r\n    {\r\n        key(PK; \"Code\")\r\n        {\r\n            Clustered = true;\r\n        }\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<p>Y creamos la pagina<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ &lt;summary>\r\n\/\/\/ Page Route Shipping Agent (ID 50100).\r\n\/\/\/ &lt;\/summary>\r\npage 50100 \"Route Shipping Agent\"\r\n{\r\n    ApplicationArea = All;\r\n    Caption = 'Route Shipping Agent';\r\n    PageType = List;\r\n    SourceTable = \"Shipping Routes\";\r\n    UsageCategory = Lists;\r\n\r\n    layout\r\n    {\r\n        area(content)\r\n        {\r\n            repeater(General)\r\n            {\r\n                field(\"Code\"; Rec.\"Code\")\r\n                {\r\n                    ToolTip = 'Specifies the value of the Code field.';\r\n                }\r\n                field(Description; Rec.Description)\r\n                {\r\n                    ToolTip = 'Specifies the value of the Description field.';\r\n                }\r\n                field(\"Shipping Agent\"; Rec.\"Shipping Agent\")\r\n                {\r\n                    ToolTip = 'Specifies the value of the Shipping Agent field.';\r\n                }\r\n            }\r\n        }\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<p>Luego agregamos el campo a la extensi\u00f3n previa<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ &lt;summary>\r\n\/\/\/ TableExtension ShipLocExt (ID 50100) extends Record Post Code.\r\n\/\/\/ &lt;\/summary>\r\ntableextension 50100 ShipLocExt extends \"Post Code\"\r\n{\r\n    fields\r\n    {\r\n        field(50100; ShipLoc; Code&#91;10])\r\n        {\r\n            Caption = 'Shipment Location';\r\n            DataClassification = CustomerContent;\r\n            TableRelation = Location.Code;\r\n        }\r\n        field(50101; ShippingRoute; Code&#91;20])\r\n        {\r\n            Caption = 'Shipping Route';\r\n            DataClassification = CustomerContent;\r\n            TableRelation = \"Shipping Routes\".Code;\r\n        }\r\n    }\r\n}\r\n<\/code><\/pre>\n\n\n\n<p>Y a la p\u00e1gina<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ &lt;summary>\r\n\/\/\/ PageExtension ShipLocPostCodesExt (ID 50100) extends Record Post Codes.\r\n\/\/\/ &lt;\/summary>\r\npageextension 50100 ShipLocPostCodesExt extends \"Post Codes\"\r\n{\r\n    layout\r\n    {\r\n        addlast(Control1)\r\n        {\r\n            field(ShipLoc; Rec.ShipLoc)\r\n            {\r\n                ApplicationArea = all;\r\n            }\r\n            field(ShippingRoute; Rec.ShippingRoute)\r\n            {\r\n                ApplicationArea = All;\r\n            }\r\n        }\r\n    }\r\n}\r<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"213\" src=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-2.png\" alt=\"\" class=\"wp-image-520\" srcset=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-2.png 921w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-2-300x69.png 300w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-2-768x178.png 768w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-2-816x189.png 816w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/figure>\n\n\n\n<p>Ya que estamos en eso, creamos nuestros equipos de transporte como transportistas y agreguemos esto a la tabla de ruta, es decir, asignemos que transporte usaremos por ruta y en base a eso poder programar los env\u00edos.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"921\" height=\"176\" src=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-3.png\" alt=\"\" class=\"wp-image-521\" srcset=\"https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-3.png 921w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-3-300x57.png 300w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-3-768x147.png 768w, https:\/\/fbedolla.com\/wp-content\/uploads\/2023\/05\/image-3-816x156.png 816w\" sizes=\"auto, (max-width: 921px) 100vw, 921px\" \/><\/figure>\n\n\n\n<p>Ya con esto podemos sacar el reporte de Estado env\u00edo almac\u00e9n con lo que aparecer\u00eda el desglose de los pedidos y sus l\u00edneas que debemos de cargar al transporte. L\u00f3gicamente tenemos que ajustar la codeunit de suscripci\u00f3n.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/\/ &lt;summary>\r\n\/\/\/ Codeunit ShipLocExtSubscribers (ID 50100).\r\n\/\/\/ &lt;\/summary>\r\ncodeunit 50100 ShipLocExtSubscribers\r\n{\r\n    &#91;EventSubscriber(ObjectType::Table, Database::Customer, 'OnAfterValidatePostCode', '', true, true)]\r\n    local procedure AsignLoc(var Customer: Record Customer)\r\n    var\r\n        PostCode: Record \"Post Code\";\r\n    begin\r\n        PostCode.Reset();\r\n        PostCode.SetRange(Code, Customer.\"Post Code\");\r\n        if PostCode.FindFirst() then begin\r\n            Customer.\"Location Code\" := PostCode.ShipLoc;\r\n            Customer.\"Shipping Agent Code\" := GetShipAgnt(PostCode.ShippingRoute);\r\n            Customer.Modify(true);\r\n        end;\r\n    end;\r\n\r\n    &#91;EventSubscriber(ObjectType::Table, Database::\"Ship-to Address\", 'OnAfterValidatePostCode', '', true, true)]\r\n    local procedure StAAsignLoc(var ShipToAddress: Record \"Ship-to Address\"; var PostCode: Record \"Post Code\")\r\n    begin\r\n        PostCode.Reset();\r\n        PostCode.SetRange(Code, ShipToAddress.\"Post Code\");\r\n        if PostCode.FindFirst() then begin\r\n            ShipToAddress.\"Location Code\" := PostCode.ShipLoc;\r\n            ShipToAddress.\"Shipping Agent Code\" := GetShipAgnt(PostCode.ShippingRoute);\r\n            ShipToAddress.Modify(true);\r\n        end;\r\n    end;\r\n\r\n    local procedure GetShipAgnt(var ShipRoutCode: Code&#91;20]): Code&#91;20]\r\n    var\r\n        ShipRoutes: Record \"Shipping Routes\";\r\n    begin\r\n        ShipRoutes.Reset();\r\n        ShipRoutes.SetRange(Code, ShipRoutCode);\r\n        if ShipRoutes.FindFirst() then\r\n            exit(ShipRoutes.\"Shipping Agent\");\r\n    end;\r\n}\r<\/code><\/pre>\n\n\n\n<p>Listo, Business Central ahora puede asignar un almac\u00e9n de env\u00edo en funci\u00f3n al c\u00f3digo postal de la direcci\u00f3n del cliente, tambi\u00e9n se puede definir una ruta y en base a eso, se asigna el transporte que deber\u00e1 llevarlo lo cual aparece en los env\u00edos.<\/p>\n\n\n\n<p>\u00bfQu\u00e9 har\u00eda falta?<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Cargar todos los c\u00f3digos postales a los cuales se puede enviar.<\/li><li>Asignar los almacenes de env\u00edo y las rutas as\u00ed como los transportes.<\/li><li>agregar un control de errores al asignar los c\u00f3digos postales, por ejemplo, si no se atiende un c\u00f3digo postal, simplemente dar un error de &#8216; We dont ship to that address&#8217; o algo similar.<\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Hablemos un poco de automatizaci\u00f3n de operaciones en Business Central. El escenario es: se quiere integrar un portal de ventas (ecommerce le llaman) a Business Central y uno de los problemas tiene que ver con el almac\u00e9n del cual se surtir\u00e1 la mercanc\u00eda en funci\u00f3n a la direcci\u00f3n del cliente. Link al video en Youtube [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,7],"tags":[],"class_list":["post-517","post","type-post","status-publish","format-standard","hentry","category-coding","category-ideas"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/posts\/517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/comments?post=517"}],"version-history":[{"count":1,"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/posts\/517\/revisions"}],"predecessor-version":[{"id":523,"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/posts\/517\/revisions\/523"}],"wp:attachment":[{"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/media?parent=517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/categories?post=517"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fbedolla.com\/index.php\/wp-json\/wp\/v2\/tags?post=517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}