{"id":1350,"date":"2011-05-30T05:22:48","date_gmt":"2011-05-30T09:22:48","guid":{"rendered":"http:\/\/www.tridens.si\/?p=1350"},"modified":"2021-12-01T15:36:41","modified_gmt":"2021-12-01T15:36:41","slug":"oracle-advanced-queuing-i-oracle-brm","status":"publish","type":"post","link":"https:\/\/tridenstechnology.com\/pl\/oracle-advanced-queuing-and-oracle-brm\/","title":{"rendered":"Oracle Advanced Queuing i Oracle BRM"},"content":{"rendered":"<p>W naszym ostatnim artykule, <a href=\"https:\/\/tridenstechnology.com\/integrating-oracle-brm-with-enterprise-applications\/\">Integracja Oracle BRM z aplikacjami korporacyjnymi<\/a>, Wyja\u015bnili\u015bmy Pa\u0144stwu jeden ze sposob\u00f3w wdro\u017cenia integracji BRM z CRM. Sugerowanym rozwi\u0105zaniem by\u0142o zbudowanie konektora po stronie BRM i po\u0142\u0105czenie go z aplikacj\u0105 innej firmy. Mo\u017cliwe jest jednak r\u00f3wnie\u017c przyj\u0119cie innego podej\u015bcia poprzez wykorzystanie <strong>Oracle Advanced Queuing<\/strong>, kt\u00f3ry b\u0119dzie przedmiotem niniejszego artyku\u0142u.<\/p>\n\n\n\n<p>Niedawno brali\u015bmy udzia\u0142 w projekcie, w kt\u00f3rym klient chcia\u0142 \u201cbezpiecznej\u201d integracji bez konieczno\u015bci dzia\u0142ania w czasie rzeczywistym; wed\u0142ug nich wystarczy\u0142oby rozwi\u0105zanie dzia\u0142aj\u0105ce w czasie zbli\u017conym do rzeczywistego. To, co rozumiemy przez bezpieczn\u0105 integracj\u0119, to posiadanie rozwi\u0105zania, kt\u00f3re nie wp\u0142ynie na \u017cadn\u0105 wykonan\u0105 czynno\u015b\u0107, tak\u0105 jak zakup produktu lub utworzenie rachunku, przez niedzia\u0142aj\u0105ce \u0142\u0105cze komunikacyjne (lub jakikolwiek inny b\u0142\u0105d) mi\u0119dzy Oracle BRM a oprogramowaniem innej firmy. Podczas wdra\u017cania niestandardowego konektora dm do integracji danych, ka\u017cda nieudana operacja spowoduje cofni\u0119cie ca\u0142ej akcji. Chocia\u017c mo\u017ce to by\u0107 po\u017c\u0105dane zachowanie, w tym przypadku tak nie by\u0142o; dlatego zdecydowali\u015bmy si\u0119 na Oracle Advanced Queuing. Zidentyfikowali\u015bmy, \u017ce naszym najgorszym scenariuszem by\u0142yby problemy z baz\u0105 danych, ale wyst\u0105pi\u0142oby r\u00f3wnie\u017c wiele innych problem\u00f3w; po pierwsze, system BRM nie dzia\u0142a\u0142by prawid\u0142owo.<br>Inne zalety, kt\u00f3re zidentyfikowali\u015bmy, to trwa\u0142o\u015b\u0107 danych (zdarzenia s\u0105 przechowywane w bazie danych, dop\u00f3ki aplikacja konsumencka nie b\u0119dzie gotowa do przetworzenia wiadomo\u015bci w kolejce) i ju\u017c sprawdzona technologia Oracle AQ.<\/p>\n\n\n\n<p>Pomy\u015blnie wdro\u017cyli\u015bmy te zmiany w Oracle BRM w wersji 7.3 i 7.3.1 z Oracle Database 10g (10.2.0.1.0 64bit) i 11g (11.2.0.1.0 64bit) z komponentem Oracle Advanced Queuing (AQ).<\/p>\n\n\n\n<p>Proces publikowania zdarze\u0144 biznesowych Oracle BRM przy u\u017cyciu Oracle Advanced Queuing mo\u017cna zobaczy\u0107 na poni\u017cszym rysunku:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"\/\/i3.wp.com\/tridenstechnology.com\/wp-content\/uploads\/2021\/07\/Oracle_Advanced_Queuing_and_Oracle_BRM.gif\"><img fetchpriority=\"high\" decoding=\"async\" width=\"610\" height=\"402\" src=\"\/\/i3.wp.com\/tridenstechnology.com\/wp-content\/uploads\/2021\/07\/Oracle_Advanced_Queuing_and_Oracle_BRM.gif\" alt=\"\" class=\"wp-image-7185\"\/><\/a><figcaption>Ilustracja 1: Proces synchronizacji danych przy u\u017cyciu Oracle Advanced Queuing.<\/figcaption><\/figure><\/div>\n\n\n\n<p>Aby opracowa\u0107 taki proces synchronizacji, konieczne jest podj\u0119cie pewnych krok\u00f3w wst\u0119pnych. Obejmuj\u0105 one:<br>1. Instalacja EAI Manager.<br>o Modu\u0142 EAI Connection Manager (CM) (zawiera kody operacyjne wymagane przez EAI),<br>o EAI Data Manager,<br>o Payload Generator External Module (EM) - zwany r\u00f3wnie\u017c EAI Java Server lub eai_js.<br>2. Po zako\u0144czeniu instalacji EAI Manager prosz\u0119 skonfigurowa\u0107 warto\u015bci w plikach konfiguracyjnych CM i EAI DM (pin.conf), a tak\u017ce w pliku w\u0142a\u015bciwo\u015bci Payload Generator (Infranet.properties).<br>3. Prosz\u0119 skonfigurowa\u0107 list\u0119 powiadomie\u0144 o zdarzeniach, kt\u00f3r\u0105 chc\u0105 Pa\u0144stwo opublikowa\u0107, edytuj\u0105c pliki konfiguracyjne powiadomie\u0144 o zdarzeniach (pliki $BRM_HOME\/sys\/data\/config\/pin_notify*) i scali\u0107 je przed uruchomieniem narz\u0119dzia load_pin_notify.<br>4. Prosz\u0119 zdefiniowa\u0107 zdarzenia biznesowe w pliku konfiguracyjnym Payload Generator EM (payloadconfig.xml).<\/p>\n\n\n\n<p>Po wykonaniu krok\u00f3w wst\u0119pnych nadszed\u0142 czas na utworzenie i skonfigurowanie zaawansowanej kolejki Oracle. Oto kroki (trzeci krok mo\u017ce si\u0119 r\u00f3\u017cni\u0107, poniewa\u017c zale\u017cy od konfiguracji):<br>1. Prosz\u0119 utworzy\u0107 kolejk\u0119:<br>pin_ifw_sync_oracle.pl create -l $USER\/$PASS@$DB -q TEST_QUEUE -t TEST_QUEUE<br>2. Prosz\u0119 przetestowa\u0107 kolejk\u0119 (krok opcjonalny):<br>pin_ifw_sync_oracle.pl test -l $USER\/$PASS@$DB -q TEST_QUEUE<br>3. Prosz\u0119 zalogowa\u0107 si\u0119 do bazy danych jako u\u017cytkownik SYSTEM i ustawi\u0107 odpowiednie uprawnienia dla \u2018t_user\u2019:<br>exec dbms_aqadm.grant_queue_privilege(\u2018ALL\u2019, \u2018PUSER.TEST_QUEUE\u2019, \u2018t_user\u2019);<br>grant execute on puser.pin_event_ty to t_user;<br>grant execute on sys.dbms_aqin to t_user;<\/p>\n\n\n\n<p>Nast\u0119pnie potrzebujemy producenta kolejki, aplikacji, kt\u00f3ra b\u0119dzie kolejkowa\u0107 zdefiniowane wcze\u015bniej zdarzenia biznesowe. Tworzenie modu\u0142u producenta jest podobne do tworzenia niestandardowej aplikacji konektora (patrz tutaj). Konieczne jest zaimplementowanie niestandardowego modu\u0142u (biblioteki) i zdefiniowanie go w pliku konfiguracyjnym dm_eai pod wpisem \u201cplugin_name\u201d.<br>Istnieje r\u00f3wnie\u017c prostszy spos\u00f3b na wykonanie tego zadania. Je\u015bli zainstalowali ju\u017c Pa\u0144stwo \u201cAccount Synchronization DM\u201d, to w mened\u017cerze danych dm_ifw_sync znajd\u0105 Pa\u0144stwo implementacj\u0119 modu\u0142u producenta kolejki. Je\u015bli jednak wybior\u0105 Pa\u0144stwo t\u0119 opcj\u0119, wymagane s\u0105 pewne dodatkowe wpisy w pliku konfiguracyjnym dm_eai.<\/p>\n\n\n\n<p>Po utworzeniu dzia\u0142aj\u0105cego producenta kolejek, prosz\u0119 wywo\u0142a\u0107 niekt\u00f3re zdarzenia biznesowe, aby sprawdzi\u0107, czy zostan\u0105 one umieszczone w kolejce. Kolejki mo\u017cna sprawdza\u0107 w tabeli zdefiniowanej podczas tworzenia kolejki.<\/p>\n\n\n\n<p>Wreszcie, potrzebny b\u0119dzie konsument kolejki, aplikacja, kt\u00f3ra b\u0119dzie odczytywa\u0107 i usuwa\u0107 wiadomo\u015bci z kolejki. Dost\u0119pnych jest kilka interfejs\u00f3w programistycznych umo\u017cliwiaj\u0105cych dost\u0119p do Oracle Streams AQ w nast\u0119puj\u0105cych j\u0119zykach programowania: Java (JMS), PL\/SQL, C (OCI), Visual Basic (OO4O), AQ XML Servlet (IDAP).<br>Dzi\u0119ki niestandardowej implementacji klienta b\u0119d\u0105 Pa\u0144stwo mieli pe\u0142n\u0105 kontrol\u0119 nad tym, jak szybko, kiedy i ile wiadomo\u015bci b\u0119dzie przetwarzanych. Na przyk\u0142ad poza godzinami szczytu mog\u0105 Pa\u0144stwo przetwarza\u0107 wi\u0119cej danych ni\u017c w godzinach szczytu.<\/p>\n\n\n\n<p>Mamy nadziej\u0119, \u017ce dali\u015bmy Pa\u0144stwu kilka wa\u017cnych wskaz\u00f3wek dotycz\u0105cych procesu integracji\/synchronizacji mi\u0119dzy Oracle BRM a systemami i\/lub aplikacjami innych firm.<\/p>","protected":false},"excerpt":{"rendered":"<p>In our last article, Integrating Oracle BRM with enterprise applications, we explained one way of implementing a BRM-to-CRM integration. The suggested solution was to build a connector on the BRM side and have it connect to a third-party application. However, it is also possible to take a different approach by using Oracle Advanced Queuing, which&hellip;<\/p>","protected":false},"author":1,"featured_media":3163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38],"tags":[],"class_list":["post-1350","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle-billing","category-38","description-off"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Oracle Advanced Queuing and Oracle BRM - Tridens<\/title>\n<meta name=\"description\" content=\"It is also possible to take a different approach by using Oracle Advanced Queuing, which will be the subject of this article.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/tridenstechnology.com\/pl\/oracle-advanced-queuing-i-oracle-brm\/\" \/>\n<meta property=\"og:locale\" content=\"pl_PL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Oracle Advanced Queuing and Oracle BRM\" \/>\n<meta property=\"og:description\" content=\"It is also possible to take a different approach by using Oracle Advanced Queuing, which will be the subject of this article.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/tridenstechnology.com\/pl\/oracle-advanced-queuing-i-oracle-brm\/\" \/>\n<meta property=\"og:site_name\" content=\"Tridens\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/tridenstechnology\" \/>\n<meta property=\"article:published_time\" content=\"2011-05-30T09:22:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-01T15:36:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1934\" \/>\n\t<meta property=\"og:image:height\" content=\"1934\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ale\u0161\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@TridensTech\" \/>\n<meta name=\"twitter:site\" content=\"@TridensTech\" \/>\n<meta name=\"twitter:label1\" content=\"Napisane przez\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ale\u0161\" \/>\n\t<meta name=\"twitter:label2\" content=\"Szacowany czas czytania\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minuty\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Oracle Advanced Queuing i Oracle BRM - Tridens","description":"Mo\u017cliwe jest r\u00f3wnie\u017c przyj\u0119cie innego podej\u015bcia poprzez u\u017cycie Oracle Advanced Queuing, kt\u00f3re b\u0119dzie przedmiotem tego artyku\u0142u.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/tridenstechnology.com\/pl\/oracle-advanced-queuing-i-oracle-brm\/","og_locale":"pl_PL","og_type":"article","og_title":"Oracle Advanced Queuing and Oracle BRM","og_description":"It is also possible to take a different approach by using Oracle Advanced Queuing, which will be the subject of this article.","og_url":"https:\/\/tridenstechnology.com\/pl\/oracle-advanced-queuing-i-oracle-brm\/","og_site_name":"Tridens","article_publisher":"https:\/\/www.facebook.com\/tridenstechnology","article_published_time":"2011-05-30T09:22:48+00:00","article_modified_time":"2021-12-01T15:36:41+00:00","og_image":[{"width":1934,"height":1934,"url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","type":"image\/png"}],"author":"Ale\u0161","twitter_card":"summary_large_image","twitter_creator":"@TridensTech","twitter_site":"@TridensTech","twitter_misc":{"Napisane przez":"Ale\u0161","Szacowany czas czytania":"4 minuty"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#article","isPartOf":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/"},"author":{"name":"Ale\u0161","@id":"https:\/\/tridenstechnology.com\/#\/schema\/person\/ccd247e07a5e0f856ec13af63d611358"},"headline":"Oracle Advanced Queuing and Oracle BRM","datePublished":"2011-05-30T09:22:48+00:00","dateModified":"2021-12-01T15:36:41+00:00","mainEntityOfPage":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/"},"wordCount":787,"commentCount":0,"publisher":{"@id":"https:\/\/tridenstechnology.com\/#organization"},"image":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#primaryimage"},"thumbnailUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","articleSection":["Oracle Billing"],"inLanguage":"pl-PL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/","url":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/","name":"Oracle Advanced Queuing i Oracle BRM - Tridens","isPartOf":{"@id":"https:\/\/tridenstechnology.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#primaryimage"},"image":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#primaryimage"},"thumbnailUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","datePublished":"2011-05-30T09:22:48+00:00","dateModified":"2021-12-01T15:36:41+00:00","description":"Mo\u017cliwe jest r\u00f3wnie\u017c przyj\u0119cie innego podej\u015bcia poprzez u\u017cycie Oracle Advanced Queuing, kt\u00f3re b\u0119dzie przedmiotem tego artyku\u0142u.","breadcrumb":{"@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#breadcrumb"},"inLanguage":"pl-PL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/"]}]},{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#primaryimage","url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","contentUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/08\/oracle-brm-services.png","width":1934,"height":1934,"caption":"Oracle BRM Services"},{"@type":"BreadcrumbList","@id":"https:\/\/tridenstechnology.com\/oracle-advanced-queuing-and-oracle-brm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/tridenstechnology.com\/"},{"@type":"ListItem","position":2,"name":"Oracle Advanced Queuing and Oracle BRM"}]},{"@type":"WebSite","@id":"https:\/\/tridenstechnology.com\/#website","url":"https:\/\/tridenstechnology.com\/","name":"Tridens","description":"Monetyzacja, rozliczenia i \u0142adowanie pojazd\u00f3w elektrycznych","publisher":{"@id":"https:\/\/tridenstechnology.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/tridenstechnology.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pl-PL"},{"@type":"Organization","@id":"https:\/\/tridenstechnology.com\/#organization","name":"Tridens","url":"https:\/\/tridenstechnology.com\/","logo":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/tridenstechnology.com\/#\/schema\/logo\/image\/","url":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/02\/tridens_logo_invert.png","contentUrl":"https:\/\/d2xqcz296oofyv.cloudfront.net\/wp-content\/uploads\/2019\/02\/tridens_logo_invert.png","width":600,"height":191,"caption":"Tridens"},"image":{"@id":"https:\/\/tridenstechnology.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/tridenstechnology","https:\/\/x.com\/TridensTech","https:\/\/www.instagram.com\/tridenstechnology\/","https:\/\/www.linkedin.com\/company\/tridens","https:\/\/www.youtube.com\/user\/TridensIT"]},{"@type":"Person","@id":"https:\/\/tridenstechnology.com\/#\/schema\/person\/ccd247e07a5e0f856ec13af63d611358","name":"Ale\u0161","image":{"@type":"ImageObject","inLanguage":"pl-PL","@id":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0df040b8c52446051022ab32cd2ac1dc64d3c7eed18d5bd5ab9f2992b8935fc8?s=96&d=mm&r=g","caption":"Ale\u0161"},"description":"Ales Pristovnik jest dyrektorem generalnym Tridens Technology, s\u0142owe\u0144skiej firmy specjalizuj\u0105cej si\u0119 w tworzeniu oprogramowania dla przemys\u0142u motoryzacyjnego. Ma d\u0142ug\u0105 histori\u0119 w bran\u017cy IT, pracuj\u0105c w przesz\u0142o\u015bci dla kilku du\u017cych firm. Jego pasj\u0105 jest technologia i innowacje, a obecnie koncentruje si\u0119 na opracowywaniu rozwi\u0105za\u0144, kt\u00f3re poprawi\u0105 bezpiecze\u0144stwo i wydajno\u015b\u0107 przemys\u0142u motoryzacyjnego. Ma silne do\u015bwiadczenie w przyw\u00f3dztwie i zarz\u0105dzaniu i jest zaanga\u017cowany w rozw\u00f3j swojej firmy w stale rozwijaj\u0105cym si\u0119 sektorze technologicznym.","url":"https:\/\/tridenstechnology.com\/pl\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/posts\/1350","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/comments?post=1350"}],"version-history":[{"count":0,"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/posts\/1350\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/media\/3163"}],"wp:attachment":[{"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/media?parent=1350"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/categories?post=1350"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tridenstechnology.com\/pl\/wp-json\/wp\/v2\/tags?post=1350"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}