← back to Filemaker Mcp
scripts/probe-invoice-102387.mjs
26 lines
// Read-only: pull invoice 102387 (Shopify #32513) via the HDR layout and show the
// line columns + lookup fields (Name/Color/Mfr#/VID) to confirm the missing-master tell.
import { readFileSync } from 'node:fs';
import { fileURLToPath } from 'node:url';
import { dirname, join } from 'node:path';
const __dir = dirname(fileURLToPath(import.meta.url));
for (const line of readFileSync(join(__dir, '..', '.env'), 'utf8').split('\n')) {
const m = line.match(/^([A-Z_]+)=(.*)$/);
if (m && !process.env[m[1]]) process.env[m[1]] = m[2];
}
const { findRecords, fieldMetadata } = await import('../src/fm-client.js');
const HDR = 'Invoice to Client Copy';
const meta = await fieldMetadata('invoice', HDR);
const names = (meta.fieldMetaData || []).map((f) => f.name);
const invField = names.find((n) => /^invoice$/i.test(n)) || names.find((n) => /invoice/i.test(n) && /#|no|num/i.test(n));
const { records } = await findRecords('invoice', HDR, { [invField]: '==102387' }, { limit: 3 });
if (!records.length) { console.log('NOT FOUND on HDR layout'); process.exit(1); }
const r = records[0];
console.log('recordId:', r.recordId);
const f = r.fieldData;
const show = {};
for (const k of Object.keys(f)) {
if (/invoice|date|sold|ship name|name|color|colour|mfr|vid|detail|js|q1|unit|net|retail|total|paid|tax|resale/i.test(k)) show[k] = f[k];
}
console.log(JSON.stringify(show, null, 1));