Я создал параметрический оптический план поверх вида, используя JavaScript в MarkLogic.Как я могу передать параметр в план при его вызове? - PullRequest
1 голос
/ 07 июня 2019

Вот план, который я создал, который может принять параметр emplId для фильтрации результатов просмотра:

declareUpdate();
const op = require('/MarkLogic/optic');

const EmployeePlanSQL = op.fromView('employees', 'EmployeeRecordsView',"")
     .select(['employeeId', 'employeeName', 'pnone'])
     .where(op.eq(op.col('employeeId'), op.param('emplId')))
     .orderBy('employeeId');;
const planObj = EmployeePlanSQL.export();

xdmp.documentInsert("emplRatePlanSQL.json", planObj);

Вот как я вызываю его, используя JavaScript:

op.import(cts.doc('emplRatePlanSQL.json').toObject())
  .result();

Как передать параметр emplId при вызове этого плана?

Ответы [ 2 ]

2 голосов
/ 07 июня 2019

Необязательный второй аргумент метода result () определяет привязки параметров, как в:

.result('object', {emplId: 1});

Для получения дополнительной информации см .:

http://docs.marklogic.com/guide/app-dev/OpticAPI#id_35758

и

http://docs.marklogic.com/AccessPlan.prototype.result

Надеясь, что помогает,

1 голос
/ 07 июня 2019

При параметризации планов запросов укажите значения параметров во втором аргументе для .result():

.result(null, { emplId: 1234 });

В руководстве по Optic API есть пример .

...