ASK
ASK creates data-entry fields from tokens you place in an app template. The most common template is Path, where ASK values become parts of destination folders and filenames. ASK tokens can also appear in Body Metadata templates for fields such as Artist Name, Copyright, and User Comment.
ASK is useful when every capture, job, specimen, product, client, or location needs a few changing values. Instead of editing the full Path every time, you design the Path once and then fill in only the values that change.
For example, this Path:
c:\images\@ASK1#Client#\@ASK2#Project#\@GCT4
creates two ASK fields named Client and Project. If you enter Northwind and Catalog, the next saved image can go under:
c:\images\Northwind\Catalog\0001.jpg
The ASK fields can be shown in the main NavigationView, in a header or footer, or in a separate window. That makes ASK useful for repeated capture work where the Path page should stay out of the way.
Why use ASK
ASK helps when the file location or filename depends on information known at capture time. Common uses include:
- Client, job, project, or order numbers.
- Country, province, city, site, or room names.
- Specimen, sample, item, product, or serial numbers.
- Barcode values from a serial scanner.
- A final field that can submit the app's configured ASK action after the entry is complete.
ASK keeps the repetitive part of the workflow small. The template decides where values go. The ASK form lets the operator enter or scan only those values.
Where ASK appears
When ASK fields are available, the app can show ASK in the main NavigationView. In a left or compact navigation layout, ASK appears as a navigation item with the fields inside it. In a top navigation layout, ASK appears as an ASK button that opens the fields in a popup.
ASK can also be selected as a View Header, View Footer, or separate in-app window. When ASK is shown in one of those locations, the NavigationView ASK item is hidden. This keeps the active data-entry surface clear and avoids showing the same ASK fields in two places at the same time.
Use the NavigationView location when you want quick access without dedicating a header, footer, or window. Use a header, footer, or in-app window when ASK should stay visible while you work on another page.
Basic idea
An ASK token has three visible parts:
@ASK1#Client#
@ASKmeans create a normal typed ASK field.1is the field number.Clientis the field title shown in the ASK form.
The # characters mark the start and end of the field description. The field title goes between them.
Scanner-capable ASK tokens use @SCASK:
@SCASK1#Serial#
SCASK means scanner-capable. It does not mean scanner-only. You can still type into an SCASK field manually.
ASK and SCASK
Use @ASK when the value is normally typed. Use @SCASK when the value is often supplied by a barcode scanner.
Examples:
@ASK1#Client#creates a typed Client field.@ASK2#Project#creates a typed Project field.@SCASK1#Serial#creates a scanner-capable Serial field.@SCASK2#Item#creates a scanner-capable Item field.
The number after ASK or SCASK identifies the value. For example, every @ASK1#...# token refers to the same ASK1 value. Every @SCASK1#...# token refers to the same SCASK1 value.
Use a different number for each separate value. For example, use @ASK1#Client# and @ASK2#Project#, not two unrelated @ASK1 fields with different titles.
Field titles
The title is the text between the # characters. It should be short and clear because it appears in the ASK form.
Good titles:
ClientProjectIDSerialCity
Avoid putting long instructions in the title. Use the Path examples and this help page for instructions, and keep the live data-entry form quick to scan.
Required fields
Put * at the start of the description to make a field required:
@ASK1#*Client#
The field title is still Client. The * means the ASK submit action cannot run while the field is empty or invalid.
Required fields are useful when missing data would create a bad folder, an incomplete filename, or an incomplete capture workflow.
Example:
c:\images\@SCASK1#*ID#\@GCT4
This creates a required scanner-capable ID field. ASK submit is blocked until ID has a value.
Optional fields
Fields are optional by default. If an optional field is empty, Path normally removes the empty value.
Example:
c:\images\@ASK1#Client#\@ASK2#Project#\@GCT4
If Project is empty, the resolved Path removes that empty segment instead of leaving doubled backslashes.
Use optional fields when the value is helpful but not always available.
Placeholder fields
Put & at the start of the description when you want an empty optional value to stay visible as a placeholder:
@ASK1#&Client#
If Client is empty, Path shows an underscored placeholder such as:
ask1
For scanner-capable values, the placeholder uses the scanner identity:
@SCASK1#&Serial# becomes scask1 while empty.
Use & when you want the preview or saved path to show that a value was intentionally left blank. Do not use & when you want empty optional folders to disappear cleanly.
Field order
Put a number and colon before the title to control the order of fields in the ASK form:
@ASK1#1:Client#
The 1: means show this field first. The title is still Client.
Field order is useful when the Path order is not the same as the operator's entry order.
Example:
c:\images\@ASK3#3:City#\@ASK1#1:Client#\@ASK2#2:Project#\@GCT4
The folders are City, Client, Project in the Path. The ASK form shows Client, Project, City because the order markers are 1, 2, and 3.
Submit fields
Put ! at the end of the description when completing that field should submit the app's configured ASK action:
@ASK1#City!#
The field title is City. The ! means completing City tries to run the configured ASK submit action.
In a camera workflow, that action is commonly Shoot. This lets a repeated-entry workflow end with the final value and immediately request capture.
Completing a submit field can happen by pressing Enter, pressing Tab, or scanning into a scanner-capable submit field. Required fields must be valid first. If a required field is empty or invalid, submit is blocked and focus moves to the first field that needs attention. After submit is accepted, focus returns to the first ASK field so the next capture's data can be entered immediately.
Combining markers
Markers can be combined inside the same description. Read them from left to right:
@SCASK1#*1:ID!#
This means:
@SCASKcreates a scanner-capable field.1afterSCASKidentifies the value as SCASK1.*makes the field required.1:places it first in the ASK form.IDis the title shown to the user.!submits the configured ASK action when the field is completed.
Another example:
@ASK2#&3:Province#
This means:
@ASKcreates a typed field.2identifies the value as ASK2.&keeps a visible placeholder when empty.3:places it third in the ASK form.Provinceis the title.- There is no
!, so completing Province does not submit the action.
Real-world examples
These examples are ready to paste into a Path template and adjust for your folders. Some use @SCASK for serial barcode scanners. Some put ! on the final field so completing that field submits the app's configured ASK action. The same templates are available from the Path page Examples list.
1. Product photography client and SKU
c:\images\product\@ASK1#1:Client#\@SCASK1#*2:SKU!#\@GCT4
Use this when each product shot belongs to a client and a scanned product SKU. The SKU is required, and completing it can submit the capture action.
2. E-commerce color and angle set
c:\images\ecommerce\@ASK1#1:Brand#\@SCASK1#*2:Style#\@ASK2#3:Color#\@ASK3#4:Angle!#\@GCT4
Use this for catalog sets where the style code may be scanned, and the operator types the color and angle before shooting.
3. Real estate room coverage
c:\images\real-estate\@ASK1#1:Property#\@ASK2#2:Room#\@ASK3#3:View#\@GCT4
Use this when images are grouped by property, room, and view direction.
4. Museum object photography
c:\images\museum\@SCASK1#*1:Accession#\@ASK1#2:Object#\@ASK2#3:Side!#\@GCT4
Use this when a collection or accession barcode identifies the object, and each side or view is captured separately.
5. Laboratory sample intake
c:\images\lab\@SCASK1#*1:Sample#\@ASK1#2:Test#\@ASK2#3:Stage!#\@GCT4
Use this when every image must be tied to a scanned sample id, a typed test name, and a processing stage.
6. Laboratory plate and well imaging
c:\images\lab\plates\@SCASK1#*1:Plate#\@ASK1#2:Well#\@ASK2#3:Channel!#\@GCT4
Use this when a plate barcode is scanned and the well and imaging channel are entered before capture.
7. Specimen tray documentation
c:\images\specimens\@ASK1#1:Project#\@SCASK1#*2:Specimen#\@ASK2#3:Tray#\@ASK3#4:Position!#\@GCT4
Use this when each specimen has a scanned id and the tray and position are entered during a repeated capture session.
8. Forensic evidence intake
c:\images\forensics\@SCASK1#*1:Case#\@SCASK2#*2:Evidence#\@ASK1#3:View!#\@GCT4
Use this when case and evidence identifiers are scanned and the operator types the view before capture.
9. Forensic scene location
c:\images\forensics\@ASK1#*1:Case#\@ASK2#2:Scene#\@ASK3#3:Room#\@ASK4#4:Detail!#\@GCT4
Use this when identifiers are typed and the final detail field can submit the capture action.
10. Chain-of-custody item photos
c:\images\custody\@SCASK1#*1:Case#\@SCASK2#*2:Bag#\@SCASK3#*3:Item!#\@GCT4
Use this when each capture is driven by scanned case, bag, and item barcodes.
11. School student portraits
c:\images\school\@ASK1#1:School#\@ASK2#2:Grade#\@SCASK1#*3:Student!#\@GCT4
Use this for school portrait sessions where the student id is scanned after the school and grade are set.
12. Classroom project documentation
c:\images\school-projects\@ASK1#1:School#\@ASK2#2:Class#\@ASK3#3:Project#\@SCASK1#4:Student#\@GCT4
Use this when student ids are optional but helpful, and the main grouping is by school, class, and project.
13. Old photo scanning client order
c:\images\scan-service\@ASK1#1:Client#\@SCASK1#*2:Order#\@ASK2#3:Album#\@GCT4
Use this for scanning services where the order number is scanned and images are grouped by client and album.
14. Slide scanning box and slot
c:\images\slides\@SCASK1#*1:Order#\@ASK1#2:Box#\@ASK2#3:Slot!#\@GCT4
Use this when a customer order is scanned and each slide is identified by box and slot before scanning.
15. Family archive restoration
c:\images\archive\@ASK1#1:Family#\@ASK2#&2:Year#\@ASK3#3:Event#\@ASK4#4:Person!#\@GCT4
Use this when some historical details are unknown. The Year field keeps a visible placeholder while empty, and completing Person can submit the capture action.
Scanner workflow
For reliable scan-to-field behavior, use a serial barcode scanner. Keyboard-wedge scanners type into whichever control has keyboard focus, which is easier to misdirect during production work.
Serial scanner workflow:
- Create one or more
@SCASKfields. - Configure the scanner on the Scanner page.
- Put the scanner in serial mode.
- Program the scanner to send the required scan wrapper.
- Scan values into the ASK form.
When no scanner-capable field has keyboard focus, scans go to the current scanner target and then advance to the next scanner-capable field. When a scanner-capable field has focus, scans go into that field.
The scanner setup wrapper, such as !12345@, is separate from the ASK descriptor ! submit marker. The wrapper tells the scanner page where a scan starts and ends. The ASK descriptor ! tells ASK that completing that field should submit the configured action.
Enter and Tab
Pressing Enter in an ASK field acts like Tab. It validates the current field and moves to the next field.
If the current field has the ! marker, Enter or Tab also attempts ASK submit. Submit is blocked if a required field is empty or invalid. After submit is accepted, focus returns to the first ASK field.
This keeps repeated entry fast:
- Type or scan the first value.
- Press Enter or Tab.
- Continue through the fields.
- Complete the final
!field to submit. - Start the next entry from the first field.
Preview and saved paths
ASK values are used anywhere the template contains the matching ASK token. The Path preview updates after an ASK field is completed, focus leaves the field, or a scanner value is received. This keeps preview and save-path data in step with completed data-entry values instead of every partial keystroke.
For empty values:
- Required fields show an underscored placeholder until filled.
- Optional fields with
&show an underscored placeholder until filled. - Optional fields without
&collapse to empty.
If an optional value without & is the entire folder segment, Path removes that empty segment. This avoids doubled backslashes in the resolved path.
Body Metadata templates
Body Metadata fields can use ASK tokens when a metadata value should come from typed or scanned data. The supported metadata fields are:
- Artist Name
- Copyright
- User Comment
For example, Artist Name could contain @ASK1#Photographer#, or User Comment could contain Item @SCASK1#*1:Item#. Those tokens create ASK fields just like Path tokens do.
Metadata token templates are saved in profiles. Literal body metadata values are camera-owned body data and are not saved in profiles. Body Metadata support depends on the connected body and active Nikon SDK mode. If the current SDK mode does not expose Artist Name, Copyright, User Comment, or their attach switches, metadata ASK templates can still be saved in the profile but cannot be written to the body for that connection. When v2 mode does not expose these fields on tested bodies, the Body Metadata controls are hidden and saved templates are preserved for Legacy SDK mode.
Tokenized capture metadata writes are implemented as transient body metadata. Metadata ASK templates create ASK fields and save with the profile. Immediately before capture, the app resolves tokenized metadata templates and writes the resolved values to the camera body when that field is eligible for capture-time attachment. Artist Name and Copyright are controlled by the Body Metadata Copyright card. That card's Attach or Ignore switch controls the Nikon copyright metadata block, which includes Artist Name on confirmed bodies such as the Z50 and D800. User Comment has its own Attach or Ignore switch. Copyright metadata and User Comment metadata are written only when the matching Body Metadata switch is set to Attach. After capture completion, the app clears any tokenized body metadata fields it wrote for that capture as best effort. If a resolved metadata value is too long or contains unsupported characters, capture is rejected before the transient value is written to the body.
ASK and SCASK metadata values can be sensitive. They may contain names, order numbers, evidence identifiers, specimen ids, student ids, or scanner payloads. ASK logging uses privacy-safe details and does not log entered ASK values, scanner payloads, or resolved metadata payloads.
Troubleshooting
If ASK fields do not appear:
- Confirm the token starts with
@ASKor@SCASK. - Confirm the number is 1 through 9.
- Confirm both
#characters are present. - Confirm the title is between the
#characters. - Confirm the template is saved or active in the page that owns it.
If fields appear in the wrong order:
- Add order markers such as
1:,2:, and3:. - Check that each order marker is inside the
#characters. - Keep each marker before the title.
If submit does not run:
- Confirm the field has
!at the end of the description. - Confirm required fields are filled.
- Confirm the value does not contain invalid characters for the template source.
- Confirm the app has a configured ASK submit action.
If the wrong value appears in the path:
- Check whether two different tokens use the same ASK number.
- Use separate numbers for separate values.
- Remember that
@ASK1#Client#and@ASK1#Project#both refer to ASK1.
If scanner data goes to the wrong field:
- Use
@SCASKfor fields that should receive scanner values. - Click the intended scanner-capable field before scanning.
- Review the field order markers.
- Check the Scanner page setup and scan wrapper.
Related setup
Use Path to place ASK values in destination folders and filenames. Use Body Metadata when Artist Name, Copyright, or User Comment should be prepared from ASK values. Use Scanner when barcode values should fill @SCASK fields. Use Profiles to save and reload templates that contain ASK tokens.