Невозможно увидеть данные в представлении Marklogic

Я создал шаблон для создания представления в базе данных Marklogic. Представление успешно создано. И использование импорта mlcp для загрузки данных из XML-файла в представление. В ответ на сценарий mlcp, который я выполняю в окнах терминала, нет ошибки. Но я не вижу никаких данных, вставленных в представление.

Помогите, пожалуйста, найти ошибку.

Это мой шаблон -

    import module namespace tde = "http://marklogic.com/xdmp/tde" at "/MarkLogic/tde.xqy";

if (xdmp:database-name(xdmp:database()) = "Documents")  then        
    let $shipment-CBE:=
      <template xmlns = "http://marklogic.com/xdmp/tde">
 <path-namespaces>
  <path-namespace>
    <prefix>ns00</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/PurchaseOrderHeader</namespace-uri>
  </path-namespace>
  <path-namespace>
    <prefix>ns0</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/ConsignmentHeader</namespace-uri>
  </path-namespace>
<path-namespace>
    <prefix>ns1</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/PurchaseOrderDrop</namespace-uri>
  </path-namespace>
  <path-namespace>
    <prefix>ns2</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/ItemDetail</namespace-uri>
  </path-namespace>
  <path-namespace>
    <prefix>ns7</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/PurchaseOrderDelivery</namespace-uri>
  </path-namespace>
 <path-namespace>
    <prefix>ns9</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/BaseType</namespace-uri>
  </path-namespace>
<path-namespace>
    <prefix>ns10</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/ASN</namespace-uri>
  </path-namespace>
<path-namespace>
    <prefix>ns11</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/TransportationUnitHeader</namespace-uri>
  </path-namespace>
<path-namespace>
    <prefix>ns13</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/ContainmentHeader</namespace-uri>
  </path-namespace>
<path-namespace>
    <prefix>ns14</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/CargoBookingHeader</namespace-uri>
  </path-namespace>
<path-namespace>
    <prefix>ns15</prefix>
    <namespace-uri>http://www.globaltrademanagement_export.com/Consignment</namespace-uri>
  </path-namespace>
</path-namespaces>
  <context>/Shipment</context>
       <collections>
         <collections-and>
           <collection>PowerBI</collection>
           <collection>Shipment</collection>
         </collections-and>
       </collections>
       <rows>
         <row>
           <schema-name>Shipment</schema-name>
           <view-name>Test2</view-name>
            <columns>
             <column>
               <name>StatusID</name>
               <scalar-type>string</scalar-type>
               <val>ns9:DocumentHeader/ns9:Version/ns9:CurrentVersion/ns9:DocStatus/ns9:StatusID</val>
             </column>
              <column>
               <name>HouseBillRef</name>
               <scalar-type>string</scalar-type>
               <val>ns9:DocumentHeader/ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns0:ConsignmentHeader/ns0:HouseBillRef</val>
             </column>
              <column>
               <name>HouseBillDate</name>
               <scalar-type>string</scalar-type>
               <val>ns9:DocumentHeader/ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns0:ConsignmentHeader/ns0:HouseBillDate</val>
             </column>
              <column>
               <name>MasterBill</name>
               <scalar-type>string</scalar-type>
               <val>ns9:DocumentHeader/ns10:ASN/ns10:Schedule/ns11:TransportationUnitHeader/ns11:PrimarytUnit/ns11:TransportUnit/ns11:BillOfLading</val>
             </column>
              <column>
               <name>VesselNamePrfSch</name>
               <scalar-type>string</scalar-type>
               <val>ns9:DocumentHeader/ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns15:Bookings/ns14:CargoBookingHeader/ns14:DefaultSchedule/ns11:TransportationUnitHeader/ns11:PrimarytUnit/ns11:TransportUnit/ns11:TransUnitName</val>
             </column>
            <column>
               <name>POL_ETD_Prf_Sch</name>
               <scalar-type>dateTime</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns15:Bookings/ns14:CargoBookingHeader/ns14:DefaultSchedule/ns5:TransportationUnitHeader/ns5:PrimarytUnit/ns5:TransportUnit/ns5:PortOfLoading/ns9:ScheduledDepartureDate</val>
             </column>
             <column>
               <name>POD_ETA_Prf_Sch</name>
               <scalar-type>dateTime</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns15:Bookings/ns14:CargoBookingHeader/ns14:DefaultSchedule/ns5:TransportationUnitHeader/ns5:PrimarytUnit/ns5:TransportUnit/ns5:PortOfDischarge/ns9:ScheduledArrivalDate</val>
             </column>
              <column>
               <name>Trans_Mode</name>
               <scalar-type>string</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:TransMode</val>
             </column>
             <column>
               <name>Shipping_Terms</name>
               <scalar-type>string</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:ShipmentTerms</val>
             </column>
              <column>
               <name>LoadType</name>
               <scalar-type>string</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:SeaLoadType</val>
             </column>
             <column>
               <name>CargoDescription</name>
               <scalar-type>string</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:CargoDescr</val>
             </column>
             <column>
               <name>PackType</name>
               <scalar-type>string</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:PackageType</val>
             </column>
             <column>
               <name>PackQty</name>
               <scalar-type>unsignedLong</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:PackageQty</val>
             </column>
              <column>
               <name>CBM</name>
               <scalar-type>decimal</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:WeightDims/ns9:M3</val>
             </column>
             <column>
               <name>Net_Weight</name>
               <scalar-type>decimal</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:WeightDims/ns9:NetWeight</val>
             </column>
             <column>
               <name>Gross_Weight</name>
               <scalar-type>decimal</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:WeightDims/ns9:GrossWeight</val>
             </column>
             <column>
               <name>Litres</name>
               <scalar-type>decimal</scalar-type>
               <val>ns10:ASN/ns10:TrackedItem/ns15:Consignment/ns8:ConsignmentHeader/ns8:CargoSummary/ns8:CargoDescription/ns9:Packaging/ns9:Package/ns9:WeightDims/ns9:Litres</val>
             </column>
            </columns>
           </row>
           </rows>
         </template>
    return ( 
      tde:template-insert("/powerbi/Test2.xml",$shipment-CBE),
      "shipmentCBE.xml OK"
    )
else ("Please select the 'Documents' database.")

Ответ после запуска скрипта mlcp -

C:\Users\admin-rp\Documents\Marklogic\ML_With_PowerBI\bi-tools-master\bi-tools-master\power-bi\marklogic_powerbi_tutorial\config>mlcp.bat -options_file CBETestFileInsert.txt
22/05/10 14:39:59 DEBUG contentpump.ContentPump: Command: IMPORT
22/05/10 14:39:59 DEBUG contentpump.ContentPump: Arguments: -input_file_path ../data/CBE00030166N.xml -username admin -password ... -input_file_type documents -document_type xml -host owc-db01.owc.com -port 8000 -output_collections PowerBI,Shipment
22/05/10 14:39:59 DEBUG contentpump.ContentPump: Running in: localmode
22/05/10 14:39:59 INFO contentpump.LocalJobRunner: Content type: XML
22/05/10 14:39:59 INFO contentpump.ContentPump: Job name: local_240243545_1
22/05/10 14:39:59 INFO contentpump.FileAndDirectoryInputFormat: Total input paths to process : 1
22/05/10 14:39:59 DEBUG contentpump.CombineDocumentInputFormat: Total # of splits: 1
22/05/10 14:39:59 DEBUG contentpump.CombineDocumentInputFormat: Total # of combined splits: 1
22/05/10 14:39:59 DEBUG mapreduce.ContentOutputFormat: init query:
fn:exists(xdmp:get-request-header('x-forwarded-for'));
let $xdbcHeaderf := fn:function-lookup(xs:QName('xdmp:get-xdbc-request-header'),1)
return if (exists($xdbcHeaderf)) then fn:exists($xdbcHeaderf('x-forwarded-for')) else false();
import module namespace hadoop = "http://marklogic.com/xdmp/hadoop" at "/MarkLogic/hadoop.xqy";
xdmp:host-name(xdmp:host()),
let $versionf :=   fn:function-lookup(xs:QName('xdmp:effective-version'),0)
return if (exists($versionf)) then $versionf() else 0,
let $repf :=   fn:function-lookup(xs:QName('hadoop:get-forest-replica-hosts'),2)
return exists($repf),let $segRepf := fn:function-lookup(xs:QName('hadoop:get-forest-replica-hosts-with-segment'),2)
return exists($segRepf),let $f :=   fn:function-lookup(xs:QName('hadoop:get-assignment-policy'),0)
return if (exists($f)) then $f() else ()
22/05/10 14:39:59 DEBUG mapreduce.ContentOutputFormat: HTTP compliant mode disabled since x-forwarded-for doesn't exist
22/05/10 14:39:59 DEBUG contentpump.ThreadManager: Initial thread pool size: 32
22/05/10 14:39:59 DEBUG contentpump.ThreadManager: Thread pool is fixed and will not auto-scale.
22/05/10 14:39:59 DEBUG contentpump.ThreadManager: Running with MultithreadedMapper. Initial thread count for split #0: 32
22/05/10 14:40:00 INFO contentpump.LocalJobRunner:  completed 100%
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: com.marklogic.mapreduce.MarkLogicCounter:
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: INPUT_RECORDS: 1
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: OUTPUT_RECORDS: 1
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: OUTPUT_RECORDS_COMMITTED: 1
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: OUTPUT_RECORDS_FAILED: 0
22/05/10 14:40:00 INFO contentpump.LocalJobRunner: Total execution time: 1 sec

А это скрипт mlcp -

IMPORT
-input_file_path
../data/CBE00030166N.xml
-username
admin
-password
*****
-input_file_type 
documents 
-document_type 
xml
-host
owc-db01.owc.com
-port
8000
-output_collections
PowerBI,Shipment
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
33
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы вставляете документы как пользователь admin. Вы запрашиваете и пытаетесь прочитать их также как пользователь admin?

Я не вижу никаких явных разрешений, объявленных для этого TDE.

Дважды проверьте, какие разрешения установлены для представления и какие права есть у пользователя, с которым вы пытаетесь выполнить запрос. У них есть роль tde-view?

Безопасность документов TDE

Operations on template documents are controlled by:

The http://marklogic.com/xdmp/tde collection, which is a protected collection that contains TDE template documents.

The tde-admin role, which is required to access the TDE protected collection.

The tde-view role, which is required to view documents in the TDE protected collection. Access to views can be further restricted by setting additional permissions on the template documents that define the views. Since the same view can be declared in multiple templates loaded with different permissions, the access to views must be controlled at the column level as follows:

Column level read permissions are implicit by default and are derived from the read permissions set on the template documents. Permissions can also be explicitly set on a column using the permissions element. Permissions on a column are not required to be identical and are ORed together. A user with a role that has at least one of the read permissions set on a column will be able to see the column.

If a user does not have permissions on any of the view's columns, the view itself is not visible.

Да, запрос и вставка данных в представление — обе задачи выполняются пользователем «admin». Я пытаюсь получить назначенную роль для представления. Но это всегда дает мне эту ошибку - [1.0-ml] VIEW-NOSCHEMADB: (ошибка: FOER0000) Нет базы данных схемы для ресурса просмотра: customer360.orders Используя этот запрос - ``` версия xquery "1.0-ml"; пространство имен модулей импорта view = "marklogic.com/xdmp/просмотр" в "/MarkLogic/views.xqy"; view:get-view-scope("Shipment", "Test2") ``` Любое предложение по этому поводу, пожалуйста

Rashmita Purkayastha 10.05.2022 17:02

Дайте пользователю admin роль tde-view

Mads Hansen 10.05.2022 17:05

Роль tde-view предоставлена ​​пользователю администратор в разделе «Безопасность» на сервере Marklogic. Однако по-прежнему я не вижу никаких данных на мой взгляд.

Rashmita Purkayastha 10.05.2022 17:36

Вы видите какие-либо проблемы с импортом mlcp - пожалуйста? Я предоставил фрагмент журнала выполнения сценария импорта из окна моего терминала. Я новичок в материалах Marklogic, поэтому не уверен, где я ошибаюсь. @MadsHansen

Rashmita Purkayastha 10.05.2022 17:38

Решил проблему:

Было пространство имен, которое, если его опустить, позволяет мне видеть представление. xmlns="http://www.globaltrademanagement_export.com/Shipment

Однако это присутствовало во входном xml-файле. Но на удивление при запуске скрипта импорта mlcp не было никаких ошибок.

Ответ принят как подходящий

У представления может не быть причин вызывать ошибку. Возможно, это все еще правильное представление, и контекст просто ничего не соответствует... так что ошибки нет..

Я подозреваю, что просто ничего не совпало, так как в вашем шаблоне контекст установлен на "/Shipment", а не на "/Some-namesace:Shipment"

Чтобы устранить эти проблемы, я бы предложил использовать :tde: node-data-extraxt ().

Спасибо, это сработало после добавления префикса с /Shipment, взяв пространство имен из схемы.

Rashmita Purkayastha 12.05.2022 13:40

Другие вопросы по теме