0
votes

I'm looking to find the same records that are referenced in a FileMaker snapshot file.

From what I've read the numbers are supposed to match the internal record id.

Given an id of 21383239 I'd expect to find the record id of that record to be the same. However, it is 192.

I create a layout with all fields and a calculated field showing the record id that the following snapshot file contents were produced from.

What follows is the contents of a FileMaker snapshot file that I'm working with.

<?xml version="1.0" encoding="UTF-8"?>
<FPSL>
    <UIState>
        <UniversalPathList>fmnet:/10.1.1.63/Balanced.fmp12
fmnet:/10.1.1.220/Balanced.fmp12
fmnet:/169.254.254.47/Balanced.fmp12
filemac:/Macintosh HD/source/fmp16/Balanced.fmp12</UniversalPathList>
        <Rows type="foreignIDList" rowCount="1" baseTableId="131"><![CDATA[21383239
]]></Rows>
        <Layout id="2"/>
        <View type="form"/>
        <SelectedRow type="foreignID" id="21383239"/>
        <StatusToolbar visible="True"/>
        <Mode value="browseMode"/>
        <SortList Maintain="True" value="False"/>
    </UIState>
</FPSL>

None of the fields had the value 21383239.

I suspect it has something to do with the underlying table being an external data source representation of a Postgres table. Note that the Rows type attribute is foreignIDlist.

Here is a snapshot from a native filemaker database.

<?xml version="1.0" encoding="UTF-8"?>
<FPSL>
    <UIState>
        <UniversalPathList>fmnet:/filemaker.server/DMData.fmp12</UniversalPathList>
        <Rows type="nativeIDList" rowCount="16" baseTableId="199"><![CDATA[8-10
12
14-25
]]></Rows>
        <Layout id="128"/>
        <View type="table"/>
        <SelectedRow type="nativeID" id="8"/>
        <StatusToolbar visible="True"/>
        <Mode value="browseMode"/>
        <SortList Maintain="True" value="False"/>
    </UIState>
</FPSL>

Note that the Rows type attribute is nativeIDList.

Double-clicking on the file works but I'm looking to pass the contents of the snapshot file via a fmp protocol call so that I can have a URL link within a calendar to open the correct record .. on the correct layout.

I thought it might be the postgres OID value but it turned out that was different as well.

Any ideas on how to map

<Rows type="foreignIDList" rowCount="1" baseTableId="131"><![CDATA[21383239

]]>

to an external data source Postgres table?

1

1 Answers

1
votes

The internal record id is different to the record number. You can’t perform a find on the record id unless you store that record id in a field. I’d suggest using an auto-enter calculation with Get ( RecordID ) to capture and store this in the table.