Referenčni priročnik ukazne vrstice: wkl-office
wkl-office je orodje ukazne vrstice WKL Office SDK. Vsa druga orodja SDK, na primer opravila MSBuild in opravila za
Visual Studio Code, kličejo isto kodo. Zato se ukaz vede enako, ne glede na to, od kod ga zaženete.
Sintaksa
wkl-office <command> <project.acproj | folder | file> [options] wkl-office diff <project.acproj> <object | file> [options] wkl-office call <project.acproj | database> <function> [argument ...] [options] wkl-office test <project.acproj> [options] wkl-office texts export | import <project.acproj> [<file.csv>] wkl-office addin install | remove | status wkl-office settings list | get <key> | set <key> [<value>]
| Ukaz | Namen |
|---|---|
| `new` | Ustvari prazen projekt. |
| `check` | Preveri izvorne datoteke in računalnik, ne da bi zagnal Access. |
| `build` | Zgradi podatkovno zbirko za izbrano konfiguracijo. |
| `rebuild` | Odstrani rezultate konfiguracije in nato gradi znova. |
| `run` | Zgradi podatkovno zbirko in jo odpre v vidnem programu Access. |
| `open` | Ukaz, ki se izvede ob dvokliku na projektno datoteko: odpre prej zgrajeno podatkovno zbirko in jo zgradi le, če je še ni. |
| `validate` | Prej zgrajeno podatkovno zbirko preveri glede na izvorne datoteke. |
| `accde` | Iz prej zgrajene datoteke ACCDB izdela ACCDE. |
| `export` | Podatkovno zbirko zapiše v izvorne datoteke. |
| `import` | Spremenjene izvorne datoteke objektov naloži v podatkovno zbirko, ki je odprta v programu Access. |
| `status` | Navede objekte, ki so se spremenili v podatkovni zbirki ali v izvornih datotekah. |
| `sync` | Prenese spremembe v obe smeri. |
| `changes` | Pregled sprememb: Access proti izvornim datotekam, izvorne datoteke proti zadnjemu commitu (potrditvi sprememb), veja proti oddaljeni veji, za vsako vrstico z naslednjim korakom. |
| `diff` | Celotna razlika enega objekta ali ene izvorne datoteke proti programu Access ali proti zadnjemu commitu. |
| `commit` | Stanje preveri še enkrat, izvozi in datoteke projekta potrdi v git ali svn. |
| `push` | Commite veje pošlje v oddaljeni repozitorij. |
| `addin` | Za trenutnega uporabnika registrira ali odstrani razvijalski dodatek za Access ali sporoči njegovo stanje. |
| `settings` | Za trenutnega uporabnika izpiše, prebere ali zapiše nastavitve SDK. |
| `roundtrip` | Zgradi kopijo (brez ACCDE) in jo izvozi, da pokaže, ali so izvorne datoteke stabilne. |
| `migrate` | Pretvori projekt DATEC Access SDK ali orodja za gradnjo WKL Forms Object Library; brez -o projekt na mestu prenese na WKL Forms Object Library 2.0. |
| `deliver` | Zgradi cilje izdaje projekta in vsakega pripravi za WKL Bootstrapper. |
| `msi` | Za profil, za katerega je izdaja že pripravljena, zgradi namestitveni paket Windows Installer. |
| `call` | V skritem programu Access pokliče javno funkcijo VBA zgrajene podatkovne zbirke in izpiše vrnjeno vrednost. |
| `test` | Zgradi aplikacijo, v skritem programu Access izvede njene preizkusne postopke in sporoči rezultat vsakega preverjanja. |
| `texts` | Besedila aplikacije izmenja z datoteko CSV za Excel. |
Možnosti
| Možnost | Ukazi | Privzeto | Pomen |
|---|---|---|---|
-c, --configuration <name> | vsi s projektom | Debug | Konfiguracija gradnje; njeni rezultati se zapišejo v build/<name>/. |
--accde, --no-accde | build, rebuild | Accde projekta | Izdela ACCDE ali ne, ne glede na nastavitev projekta. |
-d, --database <file> | export, import, status, sync, commit, changes, diff | build/<configuration>/<name>.accdb | Podatkovna zbirka, ki jo ukaz bere ali spreminja. |
--changed | export, import | izklopljeno | Prenese samo objekte, ki so se spremenili od zadnjega skupnega stanja (sledenje spremembam). |
--keep access | --keep source | sync | brez | Odloči, katera stran velja za objekte, spremenjene na obeh straneh. |
--diff | sync | izklopljeno | Za vsak objekt, spremenjen na obeh straneh, pokaže prvo vrstico, v kateri se razlikujeta; o ničemer ne odloči. |
-m, --message <text> | commit (obvezno) | – | Sporočilo commita. |
--against access | --against git | diff | access, če se Access in izvorna datoteka razlikujeta, sicer git | S čim se izvorna datoteka primerja. |
--part design | --part code | diff | oboje | Samo načrt ali samo koda obrazca ali poročila. |
-n, --name <name> | new | ime mape | Ime aplikacije. |
-o, --output <folder> | migrate (za pretvorbo) | – | Mapa novega projekta. Brez te možnosti migrate projekt na mestu prenese na WKL Forms Object Library 2.0. |
--runtime | run | izklopljeno | Access zažene z /runtime in odpre ACCDE, če je bila zgrajena. |
--no-build | run, test | izklopljeno | Uporabi prej zgrajeno podatkovno zbirko in ne gradi znova. |
-p, --profile <name> | deliver, msi (za msi obvezno) | vsi profili | Profil izdaje (delivery\<name>.profile.json; v obliki 1 način cilja), za katerega se pripravi izdaja ali zgradi paket. |
-t, --target <name> | deliver, msi | vsi profili | Enako kot -p. |
--version <x.y.z> | deliver, msi | version iz delivery-settings.json; za msi različica zaganjalnika | Različica, ki se zapiše v manifeste, oziroma različica paketa. |
--dependencies | deliver | izklopljeno | Samo navede, kaj izdaja vsebuje poleg aplikacije in od kod to izvira; ničesar ne zgradi. |
--whatif | deliver, migrate brez -o | izklopljeno | deliver: po pripravi izdaje za vsak cilj izvede preizkusno izvajanje zaganjalnika brez sprememb (/whatif). migrate: izpiše spremembe in ničesar ne zapiše. |
--sign <thumbprint> | msi | nepodpisano | Paket podpiše s tem potrdilom za podpisovanje kode. |
-t, --target accdb | accde | call, test | accdb | Kateri rezultat gradnje projekta se uporabi; test za accde zgradi tudi ACCDE. |
--work <folder> | call, test | call: začasna mapa, ki se nato izbriše; test: build/<configuration>/test | Mapa za kopijo podatkovne zbirke. Ostane, skupaj z vsem, kar sta funkcija ali preizkus zapisala vanjo. |
--timeout <s> | call, test | 120 | Časovna omejitev klica oziroma vsakega preizkusnega postopka v sekundah (od 1 do 86400). |
--only <names> | test | vsi | Izvede samo navedene preizkusne postopke in skupine, ločene z vejicami. Ime izbere tudi postopke, ki se začnejo z njim in podčrtajem (Orders izbere Orders_Create). |
--no-count-guard | test | izklopljeno | Izvajanje z manj preverjanji kot zadnje uspešno ne šteje za napako. |
--language <code> | test, texts export | test: jezik, ki ga izbere Access; texts export: vsi jeziki | test: jezik izvajanja za besedila aplikacije in komponente WKL. texts export: jezik paketa za prevod. Katera koli koda jezika, na primer de, fr ali sl-SI (šteje kot sl). |
--replace | texts import | združevanje | Ena datoteka CSV je celoten nabor besedil; ključi, ki jih v njej ni, se odstranijo. |
--lock-file <datoteka> | ukazi, ki zaženejo Access (glejte spodaj) | WKL_ACCESS_LOCK_FILE, sicer brez | Zaklepanje računalnika: na tem računalniku naenkrat teče le eno izvajanje programa Access (en Access naenkrat na računalniku). |
--lock-wait <s> | ukazi, ki zaženejo Access | 600 | Koliko sekund ukaz čaka, da se zaklepanje računalnika sprosti (od 0 do 86400); pri 0 takoj odneha. |
--json | vsi | izklopljeno | Rezultat izpiše kot en objekt JSON (izhod JSON). |
--format msbuild | vsi | izklopljeno | Vsako težavo izpiše kot vrstico MSBuild (vrstice s težavami). |
Če ob klicu wkl-office navedete možnost, ki je izbrani ukaz ne pozna (na primer --accde pri ukazu export),
možnost, ki je ne pozna noben ukaz, ali napačno vrednost ali če manjka obvezen argument, program ne izvede ničesar in
se konča z izhodno kodo 1. Na standardni izhod za napake izpiše eno vrstico z imenom ukaza in opisom napake ter
napotek na wkl-office --help. Celotna navodila za uporabo dobite, če wkl-office zaženete brez argumentov.
wkl-office --help (ali -h, -?, help) jih izpiše na standardni izhod in se konča z izhodno kodo 0.
Na projektu naenkrat le eno izvajanje. Ukazi, ki pišejo (build, rebuild, run, open, validate, accde,
export, import, status, sync, commit, roundtrip, deliver, msi, test, texts), imajo med delom odprto datoteko
obj/wkl-sdk.lock poleg projektne datoteke. Če medtem zaženete drug tak ukaz, iz terminala, iz dotnet build ali iz
dodatka, se ta takoj konča z izhodno kodo 10 in ne spremeni ničesar. Sporočilo navede, kdo ima projekt zaklenjen: ID
procesa, program, ukaz in od kdaj. Zaklepanje se sprosti s koncem izvajanja, tudi če je bilo prisilno prekinjeno, zato
ni treba ničesar pospravljati: zaklenjen je projekt, dokler je datoteka odprta, ne dokler obstaja. Datoteka ostane s
podatki zadnjega izvajanja in sama po sebi nič ne pomeni; mapo obj lahko izbrišete. Ukazi check, call,
changes, diff, push, new, migrate in addin projekta ne zaklenejo.
En Access naenkrat na računalniku (izbirno). Kadar isti računalnik hkrati uporablja več oseb ali avtomatiziranih
postopkov, se izvajanja programa Access lahko ovirajo: pogovorno okno enega izvajanja na primer ustavi drugo, ponovna
registracija komponent pa vpliva na vse, ki tečejo hkrati. Udeleženci se zato lahko dogovorijo za skupno datoteko
zaklepanja, ki jo navedete z --lock-file <datoteka> ali s spremenljivko okolja WKL_ACCESS_LOCK_FILE. Vsak ukaz, ki
zažene Access (build, rebuild, run, open, validate, accde, export, import, status, sync, commit,
roundtrip, migrate, deliver, msi, call, test), to datoteko ustvari, preden zažene Access, in jo ima odprto
do konca izvajanja. Enako ravnajo opravila MSBuild (le prek spremenljivke okolja) in operacije dodatka. Če datoteko že
uporablja drugo izvajanje ali drugo orodje, ukaz počaka največ toliko sekund, kot določa --lock-wait (privzeto 600,
pri MSBuild prav tako 600), in na standardnem izhodu za napake enkrat izpiše, kdo jo uporablja. Če se datoteka v tem
času ne sprosti, se konča z izhodno kodo 10 in ne spremeni ničesar. Operacija dodatka čaka enako kot na zaklenjen
projekt in prikazuje zaklepanje računalnika <datoteka>: <imetnik>.
- Datoteka ima v vsaki vrstici en par
ime: vrednost:holder:(vrednostWKL_ACCESS_LOCK_HOLDER, sicer uporabniško ime),since:(čas UTC),purpose:(ukaz in projekt) inprocess:(ID procesa in program). - SDK datoteko ustvari tako, da jo Windows samodejno izbriše, ko se izvajanje konča, tudi ob prisilni prekinitvi ali sesutju. Zato nikoli ne ostane zaklepanje, ki bi ga bilo treba odstraniti ročno.
- Če je datoteko ustvarilo drugo orodje (na primer skript, ki jo pred izvajanjem ustvari, le če še ne obstaja, in jo po izvajanju izbriše), SDK počaka nanjo in je nikoli ne izbriše.
- Skript, ki ima zaklepanje že sam in nato pokliče
wkl-office, nastaviWKL_ACCESS_LOCK_HELDna pot datoteke. SDK potem upošteva zaklepanje klicatelja in ne čaka nanj. - Dokler ima SDK datoteko odprto, jo
Test-Pathnajde. Prebrati pa jo more le program, ki med branjem dovoli njeno brisanje, v PowerShellu[IO.File]::Open($path, 'Open', 'Read', 'ReadWrite, Delete');Get-Contentsporoči, da je datoteka v uporabi.
Če datoteke zaklepanja ne navedete, nič od tega ne velja.
new
wkl-office new <folder> [-n <name>] [--json]
Ustvari prazen projekt v novi ali prazni mapi: <name>.acproj, source/ s prazno datoteko references.json,
.gitignore za build/ in obj/ ter .vscode/tasks.json. Ime postane ime datoteke podatkovne zbirke in ime njenega
projekta VBA, zato mora biti veljaven identifikator VBA: na začetku črka, nato črke, števke in _, največ 64 znakov.
Če ime ni veljaven identifikator ali mapa ni prazna, se ukaz konča z izhodno kodo 1.
Nastavitve SDK pod newProjects določajo mape izvornih datotek, gradnje in izdaje novega projekta
(SourceRoot, BaseOutputPath, DeliveryRoot), njegov nevtralni jezik, ali potrebuje 32- ali 64-bitni Access, in
konfiguracije poleg konfiguracij Debug in Release. Če nastavitve navajajo mapo projektov (newProjects.root), se
projekt, naveden samo z imenom (wkl-office new Stranke), ustvari v njej.
check
wkl-office check <project.acproj> [-c <name>] [--json]
Prebere projektno datoteko in vse izvorne datoteke ter nato preveri računalnik. Programa Access ne zažene.
- Izvorne datoteke: projektna datoteka,
references.json,application/properties.json, vsaka shema tabele (tudi to, ali se ime datoteke ujema s tabelo), podatkovne datoteke tabel s pravilom SeedData ali FullData vrstico za vrstico, relacije, mape objektov (nepričakovane datoteke, standardni modul in modul razreda z istim imenom), nastavitve strani poročil, zaključna funkcija,AppModein ograde kontrolnikov WKL; če ima projekt izdajo, tudidelivery-settings.jsonin vsak profil izdaje, vključno z načinom, ki ga določa njegova konfiguracija gradnje (delivery-settings.json). - Poverilnice in podatki, vezani na računalnik: vsaka datoteka objekta, podatkov, traku in modela (tudi datoteke predloge), vrstico za vrstico. Geslo v povezovalnem nizu (
PWD=aliPassword=z vrednostjo) je napaka. Prazna vrednost ni napaka. Vrednost, ki se začne z{ali kjer koli vsebuje$, šteje za ogrado in je ukaz ne sporoči; geslo ODBC v zavitih oklepajih (PWD={s3cret}) ali geslo z znakom$zato preverjanje prestane. Glejte Geslo je v izvornih datotekah. Absolutna pot v uporabniški profil (C:\Users\<name>\...) je opozorilo. - Računalnik: ali COM zažene Access in ali je ta 32- ali 64-biten, kot zahteva
TargetAccess; vsak sklic glede na registrirane knjižnice tipov (ista glavna različica, enaka ali višja podrejena različica, datoteka obstaja za 32- ali 64-bitno različico programa Access); vsak gonilnik ODBC, ki ga navaja profil povezave konfiguracije.
Kar ni mogoče prebrati (na primer ključ registra, za katerega nimate dovoljenja), ukaz označi kot neberljivo, nikoli kot manjkajoče. Opozorila gradnje ne ustavijo.
build
wkl-office build <project.acproj> [-c <name>] [--accde | --no-accde] [--json]
Zgradi build/<configuration>/<name>.accdb in, če konfiguracija tako določa, še <name>.accde. Najprej izvede
check; če ta najde napako, ne ustvari ničesar. Nova podatkovna zbirka nastane v build/<configuration>/.building/ in
prejšnji rezultat zamenja šele, ko so vsi koraki uspeli. Neuspela gradnja zato ohrani zadnji dobri rezultat. ACCDB in
ACCDE se premakneta eno za drugo: če je prejšnja ACCDE odprta, je nova ACCDB staro že zamenjala, nova ACCDE pa ostane v
.building (izhodna koda 5). Po takšnem neuspehu iz build/<configuration>/ ne pripravljajte izdaje, ampak gradite
znova. Koraki gradnje so opisani v Razporeditvi in formatih izvornih datotek.
Če se koda VBA ne prevede, gradnja navede objekte, ki to povzročajo (izhodna koda 4), in pri tem ne prikaže
pogovornega okna. Če je prejšnji rezultat odprt v programu Access ali v drugem programu, gradnja ne uspe s sporočilom
„Podatkovna zbirka je odprta …“ in novo podatkovno zbirko ohrani v .building/ (izhodna koda 5).
rebuild
wkl-office rebuild <project.acproj> [-c <name>] [--accde | --no-accde] [--json]
Odstrani ACCDB, ACCDE in delovno mapo konfiguracije ter nato gradi. Če gradnja ne uspe, od prejšnje gradnje ne ostane nič. Odprte podatkovne zbirke ukaz ne odstrani, ampak se konča z napako.
run
wkl-office run <project.acproj> [-c <name>] [--runtime] [--no-build] [--json]
Zgradi podatkovno zbirko (razen z --no-build) in jo odpre v vidnem programu Access, kot bi jo odprli z dvoklikom:
izvedeta se njen zagonski obrazec in zagonska koda, nato pa SDK tega programa Access ne upravlja več. Z --runtime se Access zažene
z /runtime in odpre ACCDE, če je bila zgrajena; brez --runtime gradnja ACCDE ne izdela. Poleg ukaza open je to
edini ukaz, ki prikaže okno.
open
wkl-office open <project.acproj> [-c <name>] [--json]
Ta ukaz se izvede ob dvokliku na projektno datoteko v Raziskovalcu, ko povezavo nastavi addin install. open odpre
prej zgrajeno podatkovno zbirko konfiguracije v vidnem programu Access, ne da bi jo znova zgradil, zato spremembe, ki
ste jih naredili v programu Access in jih še niste izvozili, ostanejo ohranjene. Samo če te podatkovne zbirke še ni
(svež klon), jo open najprej zgradi. Ko z ukazom git pull prenesete spremenjene vire, sami izvedite build ali
rebuild (prej izvozite spremembe iz programa Access).
Podatkovna zbirka se odpre za razvoj in nič se ne zažene samodejno: zagonski obrazec in makro AutoExec se ne izvedeta,
zagonske lastnosti (lasten trak, skrito podokno za krmarjenje, izklopljene posebne tipke programa Access) pa za ta zagon
ne veljajo. Tako
vidite podokno za krmarjenje in trak programa Access z zavihkom WKL SDK. Da je to mogoče, open pred zagonom v skritem
programu Access odstrani zagonske lastnosti, AutoExec pa zamenja z nadomestnim makrom, ki samo nastavi začasno
spremenljivko (TempVar); takoj ko je podatkovna zbirka odprta, open oboje obnovi.
AutoExec je nato nespremenjen spet v podoknu za krmarjenje in ga lahko takoj zaženete sami. Običajni načini odpiranja
podatkovne zbirke v programu Access ostanejo nespremenjeni: dvoklik na datoteko .accdb, Datoteka › Odpri in
`run` zaženejo zagonski obrazec in AutoExec kot doslej.
Dokler zagonske lastnosti in AutoExec niso obnovljeni, je varnostna kopija shranjena v mapi
<podatkovna zbirka>.wkl-open poleg podatkovne zbirke,
na primer Stranke.accdb.wkl-open. Če se Access prej konča (zaradi zrušitve ali ker ste ga končali v upravitelju
opravil), mapa ostane, podatkovna zbirka pa ima do takrat namesto vašega makra AutoExec nadomestni makro in nima
zagonskih lastnosti, tudi če jo odprete z dvoklikom na datoteko .accdb. Ko SDK naslednjič dela s to podatkovno zbirko
(open, export, sync, preklop projekta v dodatku), najprej obnovi prvotno stanje; tako začasno stanje nikoli ne
pride v vire. Gradnja, ki podatkovno zbirko
nadomesti, varnostno kopijo zavrže, ker spada k stari datoteki. Mape ne brišite sami: v njej sta vaš AutoExec in
zagonske lastnosti. Če Access podatkovne zbirke po 90 sekundah še ni odprl, open izpiše opozorilo, obnovitev pa
prepusti naslednjemu ukazu SDK, ki dela s to podatkovno zbirko.
Gradnja v skritem programu Access izvede kodo VBA projekta, in sicer njegovo zaključno funkcijo, ne da bi Access
prikazal varnostno opozorilo, ki ga sicer pokaže ob odpiranju podatkovne zbirke. Če je projektna datoteka označena
kot prenesena iz interneta (Mark of the Web; arhiv ZIP, prenesen z brskalnikom ali prejet po pošti, oznako prenese
na razpakirane datoteke), open pred gradnjo zahteva potrditev. Če potrditve ne dobi (tudi kadar je standardni vhod
preusmerjen), ne zgradi ničesar in se konča z izhodno kodo 8. Klon repozitorija takšne oznake nima.
Če ste open zagnali z dvoklikom in pride do napake, ostane konzolno okno odprto, dokler ne pritisnete tipke Enter,
da lahko preberete sporočila. Če open zaženete iz terminala, nikoli ne čaka.
validate
wkl-office validate <project.acproj> [-c <name>] [--json]
Preveri prej zgrajeno datoteko ACCDB: ali se projekt VBA prevede, ali so vsi sklici veljavni in ali sta v podatkovni zbirki vsaka tabela in vsak objekt iz izvornih datotek. Preverja kopijo, iz katere najprej odstrani zagonske lastnosti, zato se ne izvede noben zagonski obrazec in nobena koda traku. Podatkovno zbirko z makrom AutoExec ukaz zavrne, ker pogon podatkovne zbirke tega makra ne more izklopiti.
accde
wkl-office accde <project.acproj> [-c <name>] [--json]
Iz prej zgrajene datoteke ACCDB izdela ACCDE. Access ne sporoči napake, kadar ACCDE ne izdela, zato ukaz potem preveri,
ali datoteka obstaja; če je ni, se konča z izhodno kodo 9. Zagonske lastnosti iz AppMode zapiše samo build.
export
wkl-office export <project.acproj> [-c <name>] [-d <database>] [--changed] [--json]
Podatkovno zbirko zapiše v izvorne datoteke. Če je podatkovna zbirka odprta v programu Access, jo izvozi iz tega programa, sicer iz kopije v skritem programu Access. Dokler je v tem programu Access odprto pogovorno okno ali je v njem kaj neshranjenega, ukaz izvoza ne izvede in navede vsak tak objekt. Datoteko prepiše le, če se je njena vsebina spremenila. Datoteke v upravljanih mapah, katerih objekt ne obstaja več, izbriše in jih navede. Kaj izvoz zapiše in česa ne: Razporeditev in formati izvornih datotek.
import
wkl-office import <project.acproj> [-c <name>] [-d <database>] [--changed] [--json]
V podatkovno zbirko, odprto v programu Access, naloži poizvedbe, module, razrede, obrazce, poročila in makre, katerih izvorna datoteka se razlikuje od objekta, in doda manjkajoče sklice. Dokler je v tem programu Access odprto pogovorno okno ali je v njem kaj neshranjenega, ukaz uvoza ne izvede. Objekt, ki ga je treba zamenjati, mora biti zaprt. Ukaz ničesar ne izbriše; tabel, podatkov, relacij, lastnosti in modelov v odprti podatkovni zbirki ne spreminja. Projekta ne prevede: v programu Access uporabite Debug > Compile.
status in sync
wkl-office status <project.acproj> [-c <name>] [-d <database>] [--json] wkl-office sync <project.acproj> [object ...] [-c <name>] [-d <database>] [--keep access|source] [--diff] [--json]
Vsako poizvedbo, modul, razred, obrazec, poročilo in makro na obeh straneh primerja z zadnjim skupnim stanjem, ki ga
zapiše celoten export v obj/wkl-state.json (za vsako delovno postajo posebej, ni del repozitorija).
| Stanje | Pomen | Prenese ga |
|---|---|---|
| ChangedInDatabase, NewInDatabase, DeletedInDatabase | spremenila se je samo podatkovna zbirka | export --changed, sync |
| ChangedInSource, NewInSource, DeletedInSource | spremenila se je samo izvorna datoteka | import --changed, sync |
| Renamed | objekt z drugim imenom ima besedilo, ki ga je imel stari | ustrezna smer |
| Conflict, DeletedAndChanged | spremenili sta se obe strani ali pa skupnega stanja ni in se strani razlikujeta | sync --keep access ali --keep source |
status ničesar ne spremeni. Ukaz ne prepiše ničesar, kar se je spremenilo na obeh straneh: dokler z --keep ne
odločite, katera stran velja, se izvajanje zaradi takšnih objektov konča z izhodno kodo 7. Če v ukazu za projektno
datoteko navedete še objekte (form:frmStranke, module:basLists ali ključe, ki jih izpiše changes --json), sync
omejite nanje: še vedno primerja in navede vse objekte, prenese pa samo navedene oziroma odloči samo o njih. Tako lahko
o sporih odločate enega za drugim. Če navedenega imena ni ne v podatkovni zbirki ne v izvornih datotekah, se ukaz konča
z izhodno kodo 5 in ne spremeni ničesar. Preimenovanje se
prenese kot preimenovanje samo, če ima staro besedilo natanko en objekt iste vrste. Za prenos sprememb v podatkovno
zbirko mora biti ta odprta v programu Access. Tabel, podatkov, relacij, sklicev, lastnosti in modelov ukaz ne spremlja
po objektih: zapiše jih celoten export, ustvari pa build.
changes
wkl-office changes <project.acproj> [-c <name>] [-d <database>] [--json]
Projekt preveri takoj ob klicu in v eni tabeli navede vsak objekt ali izvorno datoteko, ki ni usklajena. Tri primerjave so prikazane ločeno, ker vsaka zahteva drug korak:
| Stolpec | Primerja | Vrednosti |
|---|---|---|
| Access ↔ vir | podatkovno zbirko z izvornimi datotekami glede na zadnje skupno stanje (status) | spremenjeno v programu Access, spremenjeno v viru, spremenjeno na obeh straneh, usklajeno |
| Nadzor različic | izvorno datoteko z zadnjim commitom (stanje git ali svn) | committed, modified, added, deleted, renamed, untracked, conflicted, - (ni datoteka projekta) |
| Veja (zadnja vrstica) | lokalne commite z oddaljeno vejo po stanju zadnjega git fetch | commiti, ki jih je treba poslati ali prenesti, ali podatek, da oddaljene veje ni |
Naslednji korak v vrstici izhaja iz prvih dveh stolpcev, v tem vrstnem redu:
| Naslednji korak | Kdaj |
|---|---|
razreši konflikt spajanja | nadzor različic za datoteko sporoča spor pri spajanju |
odloči (spremenjeno na obeh straneh) | objekt sta spremenila Access in izvorna datoteka |
export | spremenil ga je samo Access |
import | spremenila ga je samo izvorna datoteka |
preglej razlike, potrdi | Access in izvorna datoteka sta usklajena, datoteka pa se razlikuje od zadnjega commita |
Prva vrstica navede čas preverjanja. Če del preverjanja ni uspel (Access se ni odzval ali je nadzor različic sporočil
napako), se prva vrstica glasi NI AŽURNO in navede, kaj ni uspelo; izhodna koda je 5. Seznam je tedaj lahko
nepopoln in ga nikoli ne smete razumeti kot „ni sprememb“. Vrstica veje uporablja to, kar je prineslo zadnje
pridobivanje (fetch); changes z oddaljenim repozitorijem ne vzpostavi stika.
diff
wkl-office diff <project.acproj> <object | file> [--against access|git] [--part design|code] [-c <name>] [-d <database>] [--json]
Izpiše celotno razliko enega objekta ali ene izvorne datoteke v poenotenem formatu, vsako spremenjeno vrstico s tremi
vrsticami sobesedila. Objekt navedite tako kot changes --json (form:frmStranke, module:basLists), izvorno
datoteko pa relativno glede na projekt (source/forms/frmStranke.form.txt); zadošča konec poti, če je enoličen.
--against accessprimerja izvorno datoteko (staro) z besedilom, ki ga ima Access zdaj (novo), torej s tem, kar bi zapisal izvoz.--against gitprimerja zadnji commit (staro) z izvorno datoteko (novo), torej s tem, kar bi zabeležil commit.--part codeobdrži samo modul obrazca ali poročila (odCodeBehindFormnaprej),--part designpa samo preostanek.
Brez --against se objekt, ki se v programu Access in v izvorni datoteki razlikuje, primerja s programom Access, vse
drugo pa z zadnjim commitom. Če sta besedili enaki, ukaz izpiše ni razlike.
commit
wkl-office commit <project.acproj> -m <message> [<file> ...] [-c <name>] [-d <database>] [--json]
Najprej znova preveri stanje, tako kot changes. Če katera od vrstic zahteva import, odloči ali razreši konflikt spajanja ali če preverjanje ni uspelo, commit zavrne z izhodno kodo 7, ne da bi kar koli zapisal: celoten izvoz bi
sicer prepisal izvorno datoteko, spremenjeno zunaj programa Access, ali pa potrdil le pol spajanja. Nato izvozi (dokler
je kaj neshranjeno, izvoz zavrne) ter projektno datoteko, njen .gitignore in mapo z izvornimi datotekami preda
odjemalcu za nadzor različic, ki ga najde v PATH (git ali svn; odloči najbližja delovna kopija nad projektom) in jih
potrdi. Datoteke, ki jih je izvoz odstranil, se izbrišejo tudi v nadzoru različic. Drugih datotek v delovni kopiji se
ukaz ne dotakne in ničesar ne pošlje v oddaljeni repozitorij. Če so izvorne datoteke enake potrjenim, ne potrdi ničesar.
Če za projektom navedete datoteke (poti relativno glede na mapo projekta, na primer
source/forms/frmStranke.form.txt), se potrdijo samo te: to je delni commit. Preverjanje in izvoz kljub temu zajameta
celoten projekt, zato vrstica, ki zahteva import, commit ustavi, tudi če njene datoteke niste navedli. Nenavedene
datoteke ostanejo v delovni kopiji spremenjene za poznejši commit. Navesti smete samo projektno datoteko, njen
.gitignore in datoteke pod korensko mapo izvornih datotek; vsako drugo datoteko ukaz zavrne z izhodno kodo 1, še
preden kar koli stori. Izbrisano izvorno datoteko navedete kot vsako drugo in se potrdi kot izbris.
push
wkl-office push <project.acproj> [--json]
Za vejo delovne kopije izvede git push in izpiše, kar je izpisal git. Ukaz nikoli ni del ukaza commit: objava
spremembe ostaja vaša ločena odločitev. V delovni kopiji Subversion ni ničesar za pošiljanje, kar ukaz tudi sporoči.
addin
wkl-office addin install | remove | status [--json]
Razvijalski dodatek SDK za trenutnega uporabnika registrira (pravice skrbnika niso potrebne), ga odstrani ali sporoči
njegovo stanje. install vzame dodatek v 32- ali 64-bitni različici, kot ustreza nameščenemu programu Access, iz mape
addin poleg mape bin SDK ali iz mape, ki jo navaja spremenljivka okolja WKL_OFFICE_ADDIN. Poleg tega install
iz mape bootstrapper-manager ob tej mapi dodatka kopira program Bootstrapper Manager v
%LOCALAPPDATA%\Programs\WKL\Bootstrapper Manager\<version>, če ta različica še ni nameščena; remove ga pusti
nameščenega. Gradnja dodatka nikoli ne registrira, to stori samo ta ukaz.
install za trenutnega uporabnika z SDK poveže tudi projektne datoteke (.acproj). Dvoklik v Raziskovalcu izvede
`open`, v meniju projektne datoteke pa se pojavi podmeni „WKL Office SDK“ z ukazi Odpri, Zgradi in zaženi,
Preveri, Zgradi in Znova zgradi (ukazi open, run, check, build in rebuild); v sistemu Windows 11 je pod
„Pokaži več možnosti“. Ukazi uporabljajo datoteko wkl-office.exe, s katero ste izvedli namestitev, zato jih namestitev
nove različice preusmeri nanjo. Windows nobenemu programu ne dovoli, da bi se sam nastavil kot privzeti: ob prvem
dvokliku na datoteko .acproj vas enkrat vpraša, s katero aplikacijo naj jo odpre; izberite „WKL Office SDK“ in
„Vedno“. Dokler izbire ne opravite, vas install na to opozori. Podmeni je na voljo ne glede na to, s katerim programom
se datoteka odpira. Projektne datoteke prikazujejo ikono programa Access. Če je .acproj že povezana z drugim
programom, ostane povezana z njim, SDK pa je naveden le pod „Odpri z“. Po ukazih Preveri, Zgradi in Znova zgradi okno
ostane odprto, dokler ne pritisnete tipke Enter, po ukazih Odpri ter Zgradi in zaženi pa le ob napaki. remove povezavo
in podmeni odstrani, status sporoči stanje obeh (projectFiles in projectFilesChosen v JSON).
install dodatek vpiše tudi za urejevalnik VBA nameščenega sistema Office, za vsakega uporabnika pod
HKEY_CURRENT_USER\Software\Microsoft\VBA\VBE\6.0\Addins (pri 64-bitnem sistemu Office pod Addins64), da ga
urejevalnik naloži, ko ga odprete; remove vpis odstrani, status pa sporoči njegovo stanje (editorListed in
editorLoadBehavior v JSON).
Dodatek se naloži ob naslednjem zagonu programa Access. Glejte Uporaba dodatka za Access.
settings
wkl-office settings list | get <key> | set <key> [<value>] [--json]
Prikaže in spremeni nastavitve SDK trenutnega uporabnika (%APPDATA%\WKL\Office SDK\settings.json),
tako kot Nastavitve v dodatku. list prikaže vse nastavitve, get eno, vsako z vrednostjo, ki velja, in njenim
izvorom: default, settings ali environment z imenom spremenljivke. set zapiše vrednost; brez vrednosti vnos
odstrani, nato pa spet velja privzeta vrednost. Če zapisano vrednost preglasi spremenljivka okolja, set na to
opozori. Pri neznani nastavitvi ali neustrezni vrednosti se ukaz konča z izhodno kodo 1, z izhodno kodo 3 pa, če
datoteke z nastavitvami ni mogoče prebrati ali zapisati; datoteka takrat ostane nespremenjena.
roundtrip
wkl-office roundtrip <project.acproj> [-c <name>] [--json]
Krožna preverba kopira projekt v začasno mapo, zgradi kopijo, jo izvozi v to kopijo in rezultat primerja z izvornimi
datotekami. Besedilne datoteke primerja s poenotenimi konci vrstic, pri vseh drugih šteje vsak bajt. Vsako datoteko z
razlikami navede kot changed: <path>:<line>, added: <path> ali removed: <path>, kopijo ohrani za primerjavo in se
konča z izhodno kodo 6. Poti datotek, ki se razlikujejo, so relativne glede na mapo projektne datoteke
(changed: source/forms/frmA.form.txt:3). Zaženite jo na izvornih datotekah, ki jih je zapisal export: prvi izvoz po migrate datoteke
enkrat prepiše. Izhodna koda 0 pomeni, da so izvorne datoteke stabilne: izvoz zgrajene podatkovne zbirke zapiše natanko
iste izvorne datoteke. Ne pomeni pa, da izvorne datoteke vsebujejo vse, kar je imela prvotna podatkovna zbirka, niti da se
aplikacija obnaša enako (glejte Česa izvoz ne ohrani). Kopija se zgradi brez
ACCDE in s profilom povezave konfiguracije; opozorila izvoza ne povzročijo neuspeha krožne preverbe.
VBA vodi za vsak identifikator v celotnem projektu en sam zapis velikih in malih črk, tudi prek modulov predloge in imen
knjižnic v sklicih. Ko se zgrajena podatkovna zbirka prevede, se Static done As Boolean spremeni v
Static Done As Boolean, če je Done drugje zapisan tako. roundtrip tedaj javi changed: v modulu, ki ga ni nihče
spremenil. Uporabite zapis, ki ga zapiše izvoz, ali identifikator preimenujte.
migrate
wkl-office migrate <old.acproj | access-app.json> -o <folder> [--json]
Projekt pretvori v nov projekt v mapi <folder>, ki mora biti prazna ali še ne sme obstajati. Vsako nastavitev, ki v
novem projektu nima mesta, izpiše kot opombo. Zažene skriti Access, da prebere stare definicije tabel (DATEC) ali
izvede skripte SQL (orodje za gradnjo). Glejte Selitev projekta DATEC Access SDK in
Selitev projekta orodja za gradnjo WKL Forms Object Library.
wkl-office migrate <project.acproj | access-app.json> [--whatif] [--json]
Brez -o ukaz projekt v njegovi mapi prenese z WKL Forms Object Library 1.x (knjižnica tipov WklComponents) na 2.0
(WklForms), brez programa Access. V izdaji 2.0 sta knjižnica tipov in njeni ProgID-ji dobili nova imena, ID-ji
razredov pa so ostali enaki. Obrazci zato obdržijo svoje kontrolnike, spremeni pa se vsako mesto, ki navaja knjižnico:
- sklic v
source/references.json(ali vreferencesdatotekeaccess-app.json): imeWklForms, glavna različica 2, podrejena različica 0; - ime
WklComponentskot cela beseda v vsaki drugi besedilni datoteki projekta: moduli, obrazci in poročila (Class ="WklComponents.TreeView"), poizvedbe, makri, trakovi, modeli (WklComponents.TextspostaneWklForms.Texts); packages.componentsvdelivery/delivery-settings.json, kadar navaja paket izdaje 1.x: najnovejši paket izdaje 2.0 ali novejše podWKL_PACKAGES; če ga ni, vnos ostane, z opombo.
Datoteke obdržijo kodiranje, oznako vrstnega reda bajtov in konce vrstic. Dokumentacije (*.md) in podatkov tabel
(source/data) ukaz ne spreminja, ampak jih le navede v opombi. Ukaz preskoči mape build, out, obj, bin in vsako mapo, katere ime se začne s piko (.git, .vs).
Vsaka spremenjena datoteka se izpiše kot changed: <file> (<count>) s spremenjenimi vrsticami; --whatif izpiše
would change: in ničesar ne zapiše. Ukaz zaženite enkrat, projekt zgradite z registrirano izdajo 2.0 in ga potrdite.
Glejte WKL Forms Object Library, „Prehod aplikacije na izdajo 2.0“.
deliver
wkl-office deliver <project.acproj> [-p <name>] [--version <x.y.z>] [--dependencies] [--whatif] [--json]
Pripravi izdajo za profile izdaje projekta (referenčni priročnik), za vsakega posebej: v obliki 2 za
vsako datoteko delivery\<name>.profile.json, urejeno po imenu, v obliki 1 za vsak cilj iz
delivery\delivery-settings.json, poimenovan po svojem načinu. Podatkovno zbirko zgradi v konfiguraciji gradnje
profila v skritem programu Access (ACCDE z zagonskimi lastnostmi načina, ki ga določa konfiguracija; za način
Development ACCDB) in nato zapiše build\Delivery\<name>:
build\Delivery\production\
Wkl.Bootstrapper.exe the starter, from the bootstrapper release named in delivery-settings.json
bootstrapper.json the starter's project file, a copy of delivery\production.bootstrapper.json
deploy\
<name>.accde the built database
app-manifest.json product, version, target, file, SHA-256, size, bitness, runtime, requires, built
components\x86\, components\x64\ WKL Forms Object Library from its release package, when the project references it
json\x86\, json\x64\ WKL Office JSON, when the project references it
Drugo mapo izdaje za posamezen profil določite z output v datoteki profila (oblika 1: targets[].output v delivery-settings.json; absolutno, s
spremenljivkami okolja ali relativno glede na mapo projekta). Mapa se vsakič zapiše na novo; mapo, izbrano z output,
SDK izprazni le, če jo je zapisala že prejšnja izdaja. Če datoteka delivery\<name>.bootstrapper.json manjka, jo
zapiše zaganjalnik iz svojih predlog (access, components, json) in ostane med izvornimi datotekami;
urejate jo s programom Bootstrapper Manager. Zaganjalnik jo nato preveri (/check). requires navaja različico, ki jo
Access ob gradnji zapiše v podatkovno zbirko: najvišjo različico z glavno različico sklica, ki je registrirana na
računalniku za gradnjo.
Vsak vnos navaja tudi identifikator LIBID knjižnice tipov (guid): po njem zaganjalnik od različice WKL Bootstrapper
3.2 naprej prepozna knjižnico, starejši zaganjalniki pa ga prezrejo.
Če priprava enega profila ne uspe, se ukaz ustavi in naslednjih profilov ne zgradi niti ne pripravi. Če izdaje ni bilo mogoče sestaviti (paket, zaganjalnik ali
njegova projektna datoteka), se ukaz konča z izhodno kodo 11; napake gradnje ohranijo svoje kode. Glejte
Priprava izdaje aplikacije z WKL Office SDK.
msi
wkl-office msi <project.acproj> -p <name> [--version <x.y.z>] [--sign <thumbprint>] [--json]
Za profil, za katerega je izdaja že pripravljena, zgradi namestitveni paket Windows Installer s skriptom
tools\New-StarterMsi.ps1 iz izdaje zaganjalnika (bootstrapper). Paket vsebuje zaganjalnik in njegovo projektno
datoteko iz build\Delivery\<name>; služba IT ga na vsak računalnik namesti enkrat. Potrebuje ukazno vrstico WiX
Toolset (wix), za --sign pa še signtool.exe iz Windows SDK. Če izdaja za profil ni pripravljena, če orodje manjka
ali ni uspelo, se ukaz konča z izhodno kodo 11 in izpiše izhod orodja.
call
wkl-office call <project.acproj | database> <function> [argument ...] [-c <name>] [-t accdb|accde] [--work <folder>] [--timeout <s>] [--json]
Pokliče javno funkcijo standardnega modula v zgrajeni podatkovni zbirki in izpiše njeno vrnjeno vrednost. Tako lahko
skript ali preizkus uporabi kodo aplikacije, ne da bi jo odprl. Pri projektni datoteki je podatkovna zbirka
build\<configuration>\<name>.accdb (z -t accde datoteka .accde); datoteko podatkovne zbirke (.accdb, .accde)
ukaz uporabi tako, kot je navedena. call ne gradi, zato najprej izvedite build.
Funkcija se izvede v skritem programu Access na kopiji podatkovne zbirke:
- Iz kopije se najprej odstranijo zagonske lastnosti, zato se ne zažene ne zagonski obrazec ne povratni klic traku ne makro AutoExec. Zbirko z makrom AutoExec ukaz zavrne (izhodna koda 5). Če funkcija potrebuje pripravo, ki jo sicer opravi zagonski obrazec, mora to kodo poklicati sama.
- Sama podatkovna zbirka ostane nespremenjena. Kopija nastane v začasni mapi, ki se nato izbriše; z
--work <folder>nastane v tej mapi in tam ostane, skupaj z vsem, kar je funkcija zapisala vanjo. {work}v argumentu se nadomesti s polno potjo mape s kopijo (tudi začasne):wkl-office call app.acproj ExportOrders "{work}\orders.csv" --work out.- Argumenti se predajo kot besedilo. VBA jih pretvori, kadar funkcija parameter deklarira kot
ByVal ... As Long,ByVal ... As Dateipd.; pri parametruByRefdrugega tipa kotStringaliVariantAccess klic zavrne. Največ 30 argumentov. Argumenti, ki se začnejo s pomišljajem, morajo slediti--:wkl-office call app.acproj Twice -- -5. - SDK programu Access ne predaja spremenljivk okolja. Ali Access, zagnan na ta način, vidi spremenljivke klicočega procesa, je odvisno od tega, kako ga zažene Windows (v sistemu Windows 11 jih vidi); funkcija se na to ne sme zanašati. Takšne vrednosti predajte kot argumente.
Vrnjena vrednost se izpiše na standardni izhod: besedilo nespremenjeno, števila z decimalno piko, True ali False,
datum kot yyyy-MM-dd (s THH:mm:ss, če vsebuje čas), Null za Null, nič za Empty, elementi polja pa vsak v svoji
vrstici.
| Klic … | Izhodna koda | Izpis |
|---|---|---|
| se je vrnil | 0 | Vrednost. |
je sprožil napako, ki je funkcija ne obravnava (Err.Raise, napaka med izvajanjem) | 12 | Besedilo napake VBA. |
| je Access zavrnil (ni javne funkcije s tem imenom, napačno število ali tip argumentov) | 12 | Sporočilo programa Access. |
je prikazal pogovorno okno (MsgBox, InputBox, obrazec, odprt kot pogovorno okno) | 14 | Naslov in besedilo okna. |
se ni vrnil v --timeout sekundah | 13 | Časovna omejitev; ta Access je bil končan. |
| ni našel podatkovne zbirke oziroma rezultata gradnje | 2 | Pot. |
| ni mogel odpreti kopije (makro AutoExec) | 5 | Razlog. |
| ni našel programa Access, ki bi ga lahko zagnal | 3 | Sporočilo sistema Windows. |
Na pogovorna okna ukaz odgovori brez tipkovnice: na pogovorno okno napake VBA z gumbom Končaj (End), na vsa druga
s tipko Escape in, če okno ostane odprto, z gumbom Prekliči, Ne ali V redu. Access pogovorno okno napake VBA
ali okno s sporočilom prikaže na namizju tudi takrat, ko teče skrito; okno izgine po približno sekundi. Funkcija,
namenjena za call, naj zato svoje napake obravnava sama in ne prikazuje pogovornih oken.
test
wkl-office test <project.acproj> [-c <name>] [-t accdb|accde] [--only <names>] [--timeout <s>] [--work <folder>] [--no-build] [--no-count-guard] [--language <code>] [--json]
Zgradi konfiguracijo (razen z --no-build; z -t accde tudi ACCDE) in nato v skritem programu Access izvede
preizkusne postopke aplikacije na kopiji podatkovne zbirke v delovni mapi (privzeto build\<configuration>\test).
Projekt navede svojo preizkusno funkcijo v <Test> (projektna datoteka); ta
vrne imena preizkusnih postopkov. Kako jih napišete, opisuje stran Preizkušanje aplikacije.
Vsak postopek se izvede posebej, s časovno omejitvijo iz --timeout (privzeto 120 sekund):
- Njegova preverjanja (
WklTest.Check) se izpišejo kotOK <procedure>: <check>aliFAIL <procedure>: <check> :: <message>. Postopek, ki se konča brez lastnega preverjanja, šteje za eno uspešno vrstico. - Napaka med izvajanjem, ki je postopek ne obravnava, je neuspešna vrstica z besedilom napake VBA; izvajanje se nadaljuje z naslednjim postopkom.
- Na pogovorno okno, ki ne gre prek
WklTest.Answer, ukaz odgovori kot pri `call`, postopek pa ne uspe. - Če postopek preseže časovno omejitev, se njegov Access konča in izvajanje se ustavi.
- Če se Access med postopkom konča (sesutje), se izvajanje ustavi s sporočilom „Access ended“ in navede zadnjo zapisano vrstico.
V delovni mapi ostanejo kopija, wkl-test-run.jsonl (vrstica za vsako preverjanje, zapisana takoj, zato vrstice pred
sesutjem ostanejo) in wkl-test-report.xml (JUnit XML za strežnike CI, en preizkusni primer za vsako preverjanje).
Izpis se konča z vrstico povzetka: <n> OK, <m> FAIL (preizkusni postopki: <k>).
Varovalo števila preverjanj. Če ima izvajanje vseh postopkov manj preverjanj kot zadnje uspešno izvajanje iste
konfiguracije, istega cilja in istega jezika, ne uspe z vrstico check count. Tako opazite preizkuse, ki se po pomoti ne izvajajo
več. Števila so shranjena v obj\wkl-test-count.json; z --only se varovalo preskoči, z --no-count-guard pa izklopi.
Jezik. --language <code> (katera koli koda jezika, na primer de ali fr; regionalna koda, na primer sl-SI,
šteje kot njen jezik) izvede postopke z besedili aplikacije in komponentami WKL v tem jeziku, ne glede na jezik Officea: SDK na začetku
izvajanja enkrat nastavi WklTexts.Language. Zahteva WKL Forms Object Library 1.65 ali novejšo različico, koda, ki ni en, de, sl, hr ali it, pa 1.67 ali
novejšo; s starejšo se izvajanje ustavi z izhodno kodo 2.
| Izvajanje … | Izhodna koda |
|---|---|
| je uspešno opravilo vsa preverjanja | 0 |
| ima vsaj eno neuspešno preverjanje | 15 |
| se je ustavilo pri postopku, ki je presegel časovno omejitev | 13 |
| se je ustavilo, ker se je Access končal | 16 |
ni našlo preizkusne funkcije, postopka (tudi po --only) ali preizkusnega modula v podatkovni zbirki | 2 |
| ni moglo odpreti kopije (makro AutoExec) | 5 |
| se je ustavilo že pri gradnji | koda gradnje (2, 3, 4, 5, 9) |
texts
wkl-office texts export <project.acproj> [<file.csv>] [--language <code>] wkl-office texts import <project.acproj> [<file.csv> ...] [--replace]
Besedila aplikacije v projektu (source/texts/*.json, oblika) izmenja z
datotekami CSV, ki jih Excel odpre neposredno. Access ni potreben.
exportza vsak ključ katerega koli jezika zapiše vrstico s stolpcemkey, nato s po enim stolpcem za vsak obstoječi jezik, najprejneutral(key,neutral,de,fr); privzeta datoteka jetexts.csvpoleg projektne datoteke. Prazna celica pomeni „v tem jeziku ni besedila“.export --language <code>namesto tega zapiše paket za prevod enega jezika (privzetotexts.<code>.csv): za vsak ključ aplikacije vrstico s stolpcikey,source(nevtralno besedilo, sicer angleško), stolpcem jezika inreview(pri prevodu, označenem za pregled, izvirno besedilo, iz katerega je nastal). Zaneutralpaketa ni.importv poljubnem vrstnem redu združi eno ali več datotek CSV, pakete ali celotne izvoze (privzetotexts.csv). Zapišejo se le stolpci jezikov,sourceinreviewpa ne. Prazna celica in manjkajoča vrstica ne spremenita ničesar, noben ključ se ne odstrani. Ključ, ki ga aplikacija nima, se preskoči z opozorilom; novi ključi prihajajo le iz stolpcaneutral(oziromaenv projektu brez nevtralnih besedil). Če dve datoteki za isti ključ in isti jezik navajata različni besedili, se ne zapiše nič. Prevod, kateregasourcese razlikuje od trenutnega nevtralnega besedila, in vsak prevod ključa, katerega nevtralno besedilo uvoz spremeni, se vsource/texts/review.<code>.jsonoznači za pregled. Za vsak jezik ena vrstica navede, koliko besedil je novih, spremenjenih, še neprevedenih in označenih za pregled.import --replace <file.csv>sprejme natanko eno datoteko CSV kot celoten nabor: ključ, ki ga v njej ni, se odstrani. Če je stolpec jezika prazen v vseh vrsticah, datoteka tega jezika ostane nespremenjena. Za vsak jezik ena vrstica navede število besedil ter koliko jih je novih, spremenjenih in odstranjenih.- Vse datoteke so v kodiranju UTF-8;
exportzapiše oznako vrstnega reda bajtov, vejice in CR LF,importpa prebere datoteke, ločene z vejicami ali podpičji, kot jih Excel shrani glede na področne nastavitve sistema Windows. Vsaka datoteka z besedili se zapiše v kanonični obliki, vendar le, če se njena vsebina spremeni. - Izhodna koda 2, če datotek z besedili ali datoteke CSV ni mogoče prebrati (ni naslovne vrstice, ki se začne s
key, stolpec, ki ni koda jezika nitineutral,sourcealireview, ključ dvakrat), če si datoteke nasprotujejo ali če datoteka CSV pri--replacenima niti nevtralnih niti angleških besedil. Izhodna koda 1 za--replacez več kot eno datoteko.
Izhodne kode
| Koda | Pomen |
|---|---|
| 0 | Opravljeno (pripravljeno za gradnjo, zgrajeno, izvoženo …). Morda so bila izpisana opozorila. |
| 1 | Klic je napačen: neznana možnost ali možnost, ki je ukaz ne pozna, napačna vrednost ali manjkajoč argument. |
| 2 | Projektna datoteka ali izvorne datoteke so neveljavne. |
| 3 | Na tem računalniku projekta ni mogoče zgraditi (Access, 32- ali 64-bitna različica, knjižnice tipov, gonilniki). |
| 4 | Koda VBA se ne prevede. |
| 5 | Drug korak ni uspel (če datoteko uporablja drug program, sporočilo navede datoteko in program: Datoteko uporablja drug program) ali pa je prišlo do napake, ki je SDK ni pričakoval (sporočena sta njen tip in besedilo). |
| 6 | roundtrip je našel razlike. |
| 7 | status ali sync je objekte, spremenjene na obeh straneh, pustil neodločene, ali pa je bil commit zavrnjen, preden je bilo kar koli zapisano. |
| 8 | Izvajanje je bilo preklicano s Ctrl+C ali pa pri ukazu open gradnja projekta iz interneta ni bila potrjena. |
| 9 | ACCDE ni bila izdelana. |
| 10 | Na projektu poteka drugo izvajanje ali pa je bilo zaklepanje računalnika zasedeno dlje kot --lock-wait sekund; nič ni bilo spremenjeno (Projekt je zaseden). |
| 11 | deliver ali msi: izdaje ali paketa ni bilo mogoče sestaviti (paket, zaganjalnik, njegova projektna datoteka ali orodje za pakete). |
| 12 | call: funkcija je sprožila napako VBA, ki je ne obravnava, ali pa je Access klic zavrnil. |
| 13 | call: funkcija se ni vrnila v časovni omejitvi; njen Access je bil končan. |
| 14 | call: funkcija je prikazala pogovorno okno, na katero je bilo odgovorjeno. |
| 15 | test: vsaj eno preverjanje ni uspelo. |
| 16 | test: Access se je med preizkusnim postopkom končal; izvajanje se je ustavilo. |
Kode, ki jih posamezen ukaz uporablja poleg 0, 1 in 10:
| Ukaz | Kode |
|---|---|
check, build, rebuild, validate | 2, 3, 4, 5; build in rebuild tudi 9 |
texts | 2 (datotek z besedili ali datoteke CSV ni mogoče prebrati) |
export | 2 (projekt ali izvorne datoteke neveljavni), 5 |
import | 2 (projekt ali izvorne datoteke neveljavni, tudi geslo v izvornih datotekah), 5 |
status, sync | 5 (tudi kadar so izvorne datoteke neveljavne ali vsebujejo geslo), 7 |
changes | 5 (tudi kadar so izvorne datoteke neveljavne ali vsebujejo geslo) |
diff | 2, kadar preverjanje glede na Access ni uspelo |
commit | 7 (zavrnjeno, nič zapisano), 5 |
push | 5 |
migrate | 2 za vsako težavo, tudi za napako skritega programa Access; brez -o 2, kadar datoteke ni mogoče prebrati ali zapisati |
addin | 3, kadar namestitev, odstranitev ali branje stanja ne uspe |
roundtrip | 2, 3, 4, 5, kadar gradnja kopije ne uspe; 5, kadar ne uspe njen izvoz; 6 za razlike |
call | 2 (ni podatkovne zbirke), 3, 5 (kopije ni bilo mogoče odpreti), 12, 13, 14 |
test | kode ukaza build; 2 (ni preizkusne funkcije, postopka ali preizkusnega modula), 5 (kopije ni bilo mogoče odpreti), 13, 15, 16 |
open | kode ukaza build; 8, če gradnja projekta iz interneta ni bila potrjena |
| vsak ukaz | 8 po Ctrl+C |
Izhod JSON
Z --json ukaz namesto besedila izpiše na standardni izhod en objekt JSON. Izjeme:
- Če je klic napačen (izhodna koda 1), se na standardni izhod za napake izpiše, kaj je narobe; JSON se ne izpiše. Tudi
newinaddinz neznanim dejanjem se končata z izhodno kodo 1, vendar izpišeta svoj JSON;commitz datoteko zunaj projekta izpiše vrsticoerror:na standardni izhod za napake, brez navodil za uporabo in brez JSON (izhodna koda 1). diff --against accessizpiše besedilo, če sta Access in izvorna datoteka objekta usklajena (izhodna koda 0) ali če preverjanje ni uspelo (izhodna koda 2).- Po Ctrl+C se na standardni izhod za napake izpiše samo sporočilo o preklicu (izhodna koda 8).
Polja so odvisna od ukaza:
| Polje | Ukazi | Vsebina |
|---|---|---|
exitCode | vsi | Izhodna koda. |
problems | vsi razen push in call; test samo, če projekt ali njegova gradnja ni uspela | Objekti s severity (error, warning), phase, object, file (pri podatkih z :<line>) in cause; pri changes in diff seznam besedil. push in call polja problems nimata. |
project, configuration, access, tables, objects, database, accde, dialogs | check, build, rebuild, validate, accde | Ime, konfiguracija, 32- ali 64-bitna različica programa Access (x86, x64; izpolni jo samo check, pri drugih je prazna), števila, izdelane datoteke ter pogovorna okna, ki jih je prikazal Access in jih je gradnja preklicala. |
written, deleted | export, commit | Zapisane in izbrisane datoteke, relativno glede na projekt. |
imported, unchanged | import | Naloženi objekti in število nespremenjenih. |
objects, done, diffs | status, sync | Vsak objekt s key in status (in renamedTo), kaj je bilo preneseno, prikazane razlike. |
folder, differences | roundtrip | Ohranjena kopija in datoteke z razlikami. |
project | new, migrate | Ustvarjena projektna datoteka (migrate tudi notes). |
whatIf, changes, notes | migrate brez -o | Ali je šlo za predogled; vsaka spremenjena datoteka s file, count in lines; mesta, ki ostanejo. problems je seznam besedil. |
process | run, open | ID procesa zagnanega programa Access. |
output | commit, push | Sporočila nadzora različic. |
checkedAt, current, clean, rows, branch | changes | Čas preverjanja, ali je uspelo, ali se nič ne razlikuje, vsaka vrstica z object, file, accessSource (InStep, ChangedInAccess, ChangedInSource, Conflict), vcs (Committed, Modified, Added, Untracked, Deleted, Renamed, Conflicted ali prazno besedilo zunaj nadzora različic), next (None, Export, Import, Decide, ReviewAndCommit, ResolveMerge) ter veja z name, hasUpstream, ahead, behind. Vrednosti so v vseh jezikih ta imena. Besedilni izpis prikaže stanje Access ↔ vir in naslednje korake Decide, ReviewAndCommit in ResolveMerge v jeziku uporabnika, stanje nadzora različic ter naslednja koraka export in import pa v angleščini. |
file, against, diff | diff | Primerjana datoteka, stran primerjave, razlika v poenotenem formatu. |
registered, listed, loadBehavior, projectFiles, projectFilesChosen | addin | Ali je dodatek registriran, ali ga Access navaja, kdaj se naloži (3 = ob zagonu programa Access), ali dvoklik na projektno datoteko izvede open in kaj ste v sistemu Windows izbrali za .acproj (projectFilesChosen: sdk, other ali none). |
editorListed, editorLoadBehavior | addin | Ali urejevalnik VBA navaja dodatek in kdaj ga naloži (3 = ko odprete urejevalnik). |
database, function, outcome, value, type, durationMs, problem | call | Poklicana podatkovna zbirka; funkcija; kako se je klic končal (returned, vbaError, failed, timeLimit, dialog, notOpened, noAccess, cancelled); vrnjena vrednost kot vrednost JSON (besedilo, število, true/false, null za Null in Empty, datum kot besedilo po ISO 8601, polje kot polje); njen tip VBA (String, Long, Double, Currency, Date, Boolean, Null, Empty, Array …; prazno, če klic ni uspel); trajanje klica v milisekundah; sporočilo neuspelega klica. |
database, work, language, end, passed, failed, durationMs, procedures, checks, problem, junit | test | Preizkušena podatkovna zbirka in delovna mapa; jezik iz --language (brez njega prazno); kako se je izvajanje končalo (completed, noTests, noTestModule, timeLimit, accessEnded, notOpened, noAccess, cancelled); število uspešnih in neuspešnih preverjanj; trajanje v milisekundah; postopki, ki so se izvedli; vsako preverjanje s test, name, ok, message, ms in utc; zakaj se je izvajanje ustavilo; pot do poročila JUnit. |
Vrstice s težavami
Brez --json se težave izpišejo kot <severity> [<phase>] <object>, <file>: <cause>; prazen del se izpusti. Z
--format msbuild je vsaka težava vrstica <file>(<line>): <error|warning> WKL<nnn>: <object>: <cause> s polno potjo,
ki jo Visual Studio Code in drugi urejevalniki pokažejo na pravem mestu. Številka označuje fazo, enako kot v opravilih
MSBuild:
| Koda | Faza (phase v JSON) | Kaj se izvaja |
|---|---|---|
| WKL000 | Project | Branje projektne datoteke |
| WKL001 | Sources | Branje in preverjanje izvornih datotek |
| WKL002 | Environment | Preverjanje računalnika: Access in njegova 32- ali 64-bitna različica, knjižnice tipov, gonilniki ODBC |
| WKL003 | Database | Ustvarjanje podatkovne zbirke: sklici, lastnosti, tabele, podatki, relacije |
| WKL004 | Objects | Nalaganje poizvedb, modulov, obrazcev, poročil, makrov |
| WKL005 | Models | Teme, viri, modeli WKL Forms Object Library |
| WKL006 | Compile | Prevajanje projekta VBA |
| WKL007 | Validate | Preverjanje zgrajene podatkovne zbirke |
| WKL008 | Accde | Izdelava ACCDE |
| WKL010 | - | Samo MSBuild: na projektu poteka drugo izvajanje |
| WKL011 | - | Samo MSBuild: datoteko uporablja drug program |
| WKL900 | - | Samo MSBuild: roundtrip je našel razliko |
Opombe
- Brez pogovornih oken. Razen
runinopennoben ukaz ne prikaže lastnega okna. Access teče skrito. Pogovorno okno, ki ga prikaže med korakom, se zabeleži z besedilom in prekliče s tipko Esc, korak pa ne uspe. V programu Access, ki ste ga odprli sami (glejte spodaj), to velja za pogovorno okno, ki se odpre med korakom; okna, ki so bila odprta že prej, ostanejo. - Časovne omejitve. Vsak korak ima stalno časovno omejitev, ki je ni mogoče spremeniti: 60 sekund za večino korakov, 90 za premik enega objekta, 120 za modele, izvoz in odpiranje kopije, 180 za prevajanje in izdelavo ACCDE ter 5 minut za podatke ene tabele in za zaključno funkcijo. Časovne omejitve in nadzor pogovornih oken veljajo za korake v programu Access.
gitinsvntečeta tako kot v ukazni vrstici, brez časovne omejitve, zato lahko poziv za poverilnice, okno upravitelja poverilnic ali kavelj (hook) ustavicommitalipush. Na računalnikih za gradnjo zato nastavite preverjanje pristnosti, ki ne zahteva vnosa. Ko korak v skritem programu Access preseže svojo omejitev, se ta Access takoj konča in korak ne uspe. Koraka v programu Access, ki ste ga odprli sami, SDK ne prekine: počaka, da se Access odzove, in nato sporoči, da je korak trajal dlje od svoje omejitve. - Noben Access ne ostane odprt. Vsak Access, ki ga zažene SDK, se ob koncu izvajanja konča: najprej ga SDK pozove, naj se zapre, in ga prisilno konča šele po 30 sekundah (kar sporoči). Če je
wkl-officeprisilno končan ali se sesuje, Windows konča tudi njegov Access, ker ga SDK uvrsti v objekt opravila (job object); če Windows tega ne bi dovolil, kar doslej ni bilo opaženo, ta varovalka manjka. Windows Access zažene prek COM, SDK pa ga v objekt opravila uvrsti, takoj ko se Access odzove, v približno sekundi. Če jewkl-officeprisilno končan v tem prvem trenutku, njegov Access teče naprej in ga morate zapreti ročno. Ctrl+C pozove Access tega izvajanja, naj se zapre, ukaz pa se takoj konča z izhodno kodo 8. Programa Access, ki ste ga odprli sami, SDK nikoli ne zapre. - Po prekinjenem izvajanju (Ctrl+C, prisilno končan proces, časovna omejitev):
exportpusti datoteke, ki jih je že zapisal, morda eno okrnjeno, ne izbriše zastarelih datotek in ne zapiše skupnega stanja.syncskupno stanje zapiše šele na koncu, zato so objekti, ki jih je že prenesel, prikazani kot spremenjeni na obeh straneh.buildpusti mapo.building, ki jo naslednja gradnja odstrani.commitlahko pusti datoteke v pripravljalnem območju, ne da bi bile potrjene.importv programu Access, ki ste ga odprli sami, pusti objekte, ki jih je že naložil. Zaženitewkl-office changes. Po prekinjenem izvozu ali sinhronizaciji izvedite celotenwkl-office export, ko ima Access želeno stanje, ali pa o vrsticah odločite ssync --keep. Po prekinjeni gradnji gradite znova, po prekinjenem commitu pa preveritegit statusin znova zaženitecommit. - Podatkovna zbirka, odprta v programu Access.
export,import,status,syncincommitpoiščejo Access, ki ima podatkovno zbirko odprto, prek tabele Running Object Table po celotni poti podatkovne zbirke (velike in male črke se ne razlikujejo) in delajo v njem. Tudichangesindiffpogledata tja. SDK najde le Access, ki ga je zagnal isti uporabnik, ne pa programa Access, zagnanega s skrbniškimi pravicami. Takšnega programa Access SDK nikoli ne zapre ali konča, tudi ne, kadar korak traja dlje od svoje časovne omejitve. - Gostitelj terminala.
wkl-office terminal-hostuporablja terminal dodatka in ni namenjen ročnemu klicanju. - 32- in 64-bitni Office. Orodje upravlja Access od zunaj, kot ločen proces, zato ena namestitev deluje z 32- in 64-bitno različico sistema Office.