Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
New in v20 Part 4
Search
4D Japan
July 27, 2023
Technology
160
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
New in v20 Part 4
4D Japan
July 27, 2023
More Decks by 4D Japan
See All by 4D Japan
4D 21 R2 R3
miyako
0
12
4D 21 LTS
miyako
0
16
4D 21
miyako
0
38
4D 20 R10
miyako
0
41
4D 20 R9
miyako
0
32
4D 20 R7 & R8
miyako
0
81
Unicodeの話 (2007)
miyako
0
42
Unicodeの話 (2008)
miyako
0
48
Google Apps Integration (2012)
miyako
0
50
Other Decks in Technology
See All in Technology
#エンジニアBooks 30分でわかる 「技術記事を書く技術」 / engineer-books 2026-06-30
jnchito
1
190
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
540
知見・人・API・DB・予算 ─ ナイナイ尽くしだった人事データ整備 with dbt、5年間の学び
ken6377
1
150
【FinOps】データドリブンな意思決定を目指して
z63d
3
610
アラート調査向けAIエージェントの本番導入とその後/AI Agents for Alert Investigation: Production Deployment and After
taddy_919
1
380
AI Agentをシステムに組み込む前にゆるく向き合ってみる
hayama17
0
200
初めてのDatabricks勉強会
taka_aki
2
230
GuardrailからGovernanceへ~AIエージェント運用の次の課題~
sbspsy
1
100
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
420
Zoom2Youtube.Claude
kawaguti
PRO
1
270
RAGの精度向上とエージェント活用
kintotechdev
2
130
SRE歴2ヶ月でも開発6年の知見を活かして、チームで止まっていた環境改善を前に進めた話
a_ono
1
200
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
WCS-LA-2024
lcolladotor
0
670
From π to Pie charts
rasagy
0
230
Producing Creativity
orderedlist
PRO
348
40k
Scaling GitHub
holman
464
140k
What's in a price? How to price your products and services
michaelherold
247
13k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
750
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Designing for Timeless Needs
cassininazir
1
270
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
Transcript
W E E K 4 4D v20 WEBINAR
4D v20Ͱͷ৽ػೳ ۩ମྫ4
• Go MobileΠϯετʔϥʔʹؚ·Ε͍ͯͳ͍ ‣ 4D Mobile AppίϯϙʔωϯτΛผ్औΓࠐΉඞཁ͋Γ Open Source 4D
v20ͷ৽ػೳ- 4D Go Mobileʹ͍ͭͯ
• ͳͥ͜ͷλΠϛϯάͰΦʔϓϯιʔεԽʁ ‣ v16͔ΒϞόΠϧΞϓϦਐԽ͖ͯͨ͠ ‣ Android/iOS྆ํʹରԠͨ͜͠ͱͰҰͭͷ౸ୡ ‣ iOSಛʹόʔδϣϯཧ͕େࣄ ➡ΦʔϓϯιʔεԽ͢Δ͜ͱ͕߹ཧతʂ •
Φʔϓϯιʔεͷར ‣ ੈքதͷσϕϩούʔ͔ΒContributeΛड͚ΒΕΔ 4D v20ͷ৽ػೳ- 4D Go MobileͷΦʔϓϯιʔεԽ
4D v20ͷ৽ػೳ- ʮΦʔϓϯιʔεʯͱʮιʔεެ։ʯͷҧ͍ ιʔεݟΒΕΔ͕ ΦʔϓϯιʔεͰͳ͍ ιʔεݟΒΕΔ͠ ΦʔϓϯιʔεͰ͋Δ ʁ
4D v20ͷ৽ػೳ- Φʔϓϯιʔεͱιʔεެ։ ιʔεެ։ Φʔϓϯιʔε μϯϩʔυͯ͠վมՄೳ GitHubͷιʔεมߋෆՄ ։ൃऀ͕Έ༻్ʹԠͯ͡ վม͢Δ͜ͱ͕·͍͠ͷ ͕ެ։͞Ε͍ͯΔ
μϯϩʔυͯ͠վมՄೳ GitHubͷιʔεΛվมՄೳ ϑΥʔΫͯ͠Pull RequestΛ ͢Δ͜ͱͰɺιʔεΛվྑ ͍ͯ͘͜͠ͱ͕Ͱ͖Δ ͲͪΒͷ߹ιʔε4D͕ॴ༗͢Δ
4D v20ͷ৽ػೳ- 4D Go Mobile • ϞόΠϧ։ൃΛ͠ͳ͍։ൃऀ ‣ ϞόΠϧͷίϯϙʔωϯτ͕֎Εͨ ‣
4DͷσεΫτοϓΞϓϦ։ൃΛͳ͘ܧଓՄೳ • ϞόΠϧ։ൃΛ͢Δ։ൃऀ ‣ ίϯϙʔωϯτΛऔΓࠐΊ͜Ε·Ͱಉ༷ʹ։ൃՄೳ
ORDA ʙ͞ΒͳΔਐԽʙ
4D v20ͷ৽ػೳ- ORDAͱ O R D A Object Relational Data
Access = {} $person.father.father.mother $entSel.orderBy("value asc") $entSel1.and($entSel2) ϦετϘοΫε ίϨΫγϣϯ ϑΥʔϜ Write Pro ΞΫηε͕ྑ͍
4D v20ͷ৽ػೳ- ΦϒδΣΫτه๏ͷརͱ QUERY([People]Name="Hanks") ds.People.query("Name = :1"; "Hanks") ≒ $myCar.brand.company
RELATE ONE([CarName]BrandID) RELATE ONE([CarBrand]CompanyID) ≒ ୯७ͳΫΤϦจͰ͋ΕΫϥγοΫͰॻ͚Δ ΑΓෳࡶͳΫΤϦͰ࣮ߦͰ͖Δͷ͕ORDAͷڧΈ
4D v20ͷ৽ػೳ- ΦϒδΣΫτه๏ͷڧΈ ❌ ΫϥγοΫݴޠͰHanksͱRyanͷڞԋΒͳ͍ “Hanks” “Ryan”
4D v20ͷ৽ػೳ- ΦϒδΣΫτه๏ͷڧΈ “Hanks” “Ryan” $es:=ds.Movie.query("roles.actor.lastName = :1 AND \
roles.actor{2}.lastName = :2"; "Hanks"; "Ryan") // $es → (You've Got Mail, Sleepless in Seattle, Joe Versus the Volcano) 👍
4D v20ͷ৽ػೳ- ΦϒδΣΫτه๏ͷڧΈ Entity 1: ds.People.name: "martin" ds.People.places: { "locations"
: [ { "kind":"home", "city":"paris" } ] } Entity 2: ds.People.name: "smith" ds.People.places: { "locations" : [ { "kind":"home", "city":"lyon" } , { "kind":"office", "city":"paris" } ] } home͕ParisͰ͋ΔਓΛ୳͍ͨ͠ ds.People.query("places.locations[].kind= :1 AND\ places.locations[].city= :2"; "home"; "paris") ͜ͷΫΤϦจͰ home͕ParisͰͳ͍ਓݕࡧͯ͠͠·͏
4D v20ͷ৽ػೳ- ΦϒδΣΫτه๏ͷڧΈ Entity 1: ds.People.name: "martin" ds.People.places: { "locations"
: [ { "kind":"home", "city":"paris" } ] } Entity 2: ds.People.name: "smith" ds.People.places: { "locations" : [ { "kind":"home", "city":"lyon" } , { "kind":"office", "city":"paris" } ] } home͕ParisͰ͋ΔਓΛ୳͍ͨ͠ ds.People.query("places.locations[a].kind= :1 AND\ places.locations[a].city= :2"; "home"; "paris") ͜ͷΫΤϦจͳΒ home͕ParisͰ͋Δਓ͚ͩΛݕࡧͰ͖Δ
• ΫΤϦ݅ͷϦϯΫ ‣ [a]ɺ[b]ͷΑ͏ʹΞϧϑΝϕοτͰࢦఆ ‣ ࠷େ26ݸ·ͰࢦఆՄೳ • ϦϨʔγϣϯͷΫϥεΠϯσοΫε ‣ {1}ɺ{2}ɺͳͲͷࣈͰࢦఆ
‣ 0Ҏ֎ͷΛࢦఆՄೳɺ͖ͳ͚ͩՃͰ͖Δ • ಄͕௧͘ͳΔ༷ͳΫΤϦ࣮ߦՄೳ 4D v20ͷ৽ػೳ- ORDA
• FormίϚϯυΛ௨ͯ͠σʔλΛϑΥʔϜʹ͢ ‣ DIALOGίϚϯυͳͲʹσʔλΛ͠Formܦ༝ͰΞΫηε ‣ ༻Ͱ͖ΔͷදࣔͷΈͰɺҹͰ͑ͳ͔ͬͨ • Print FormɺFORM LOAD͕͜ΕʹରԠ
‣ Ҿͱͯ͠ΦϒδΣΫτܕͷσʔλΛ͢͜ͱͰडऔՄೳ ‣ ҹͰORDAΛ༻Ͱ͖ΔΑ͏ʹͳͬͨ ‣ ར༻Ͱ͖ΔϑΥʔϜΠϕϯτ͕ݶΒΕΔ 4D v20ͷ৽ػೳ- ORDAͷ৽ػೳ - ҹ
4D v20ͷ৽ػೳ- ORDAͷ৽ػೳ - ίϨΫγϣϯͷ৽͍ؔ͠ $col.first() $col.last() $col.at() $col.flat() ࠷ॳ·ͨ࠷ޙͷཁૉΛฦ͢
ॱ൪Ͱࢦఆͨ͠ཁૉΛฦ͢(ෛͷՄೳ) ೖΕࢠͷίϨΫγϣϯΛʮฏ͢ʯ [ "alpha", "bravo", [ "charlie", "delta" ], "echo" ] [ "alpha", "bravo", "charlie", "delta", "echo" ]
4D v20ͷ৽ػೳ- ORDAͷ৽ػೳ - ίϨΫγϣϯͷ৽͍ؔ͠ $col.first() $col.last() $col.at() $col.flat() $col.includes()
࠷ॳ·ͨ࠷ޙͷཁૉΛฦ͢ ॱ൪Ͱࢦఆͨ͠ཁૉΛฦ͢(ෛͷՄೳ) ೖΕࢠͷίϨΫγϣϯΛʮฏ͢ʯ Find in arrayͷ༷ʹؚ·ΕΔ͔Ͳ͏͔ΛௐΔ $col.reduceRight() $col.flatMap()
• ORDAͷϩάػೳ ‣ ϦΫΤετϩάΛऔΔΈ͕࠷ॳ͔Βଂ͞Ε͍ͯΔ ‣ ϦΫΤετIDͱϑΟʔϧυ͕Ճ͞Εͨ • ϦΫΤετϩά͕αʔόʔଆͰ༻Մೳʹ ‣ ίϚϯυΛ༻͢Δ͔ɺΠϯλʔϑΣʔεͷϘλϯΛ༻
‣ JSON LinesγϯλοΫεͰه͞ΕΔ ‣ ύϑΥʔϚϯεʹӨڹ͕ग़ΔՄೳੑ͋Γɺҙ 4D v20ͷ৽ػೳ- ORDAͷ৽ػೳ - ϩάͷڧԽ
• ະఆٛͱͷͷൺֱ ‣ Undefined = Null ΤϥʔΛىͣ͜͞TrueΛฦ͢ ‣ Undefined =
“myText” ΤϥʔΛىͣ͜͞FalseΛฦ͢Α͏ʹ ‣ Undefined # 20 ΤϥʔΛىͣ͜͞TrueΛฦ͢Α͏ʹ ‣ Undefined # Null FalseΛฦ͢Α͏ʹ • Ҏ্ɾҎԼͷൺֱͲΕFalse͕ฦ͞ΕΔ ‣ Undefined > 5 / Undefined <= False ͳͲશͯFalse 4D v20ͷ৽ػೳ- ORDAͷ৽ػೳ - ܕΛҙࣝ͠ͳ͍ίʔσΟϯά
4D v20ͷ৽ػೳ- ORDAͷ৽ػೳ - Ϧςϥϧදه "MyText" !2023-07-25! ?12:30:15? $object:={}//New Objectͱಉ
$col:=[] //New Collectionͱಉ $object:={property: "value"} $col:=[Movie] //ςʔϒϧ໊ʹҙ
• ҹʹ͓͍ͯORDA͕༻Մೳʹ • ίϨΫγϣϯͷؔՃ • ϩάͷग़ྗͷڧԽ • ܕΛҙࣝ͠ͳ͍ίʔσΟϯά • ΦϒδΣΫτɾίϨΫγϣϯͷϦςϥϧදه
4D v20ͷ৽ػೳ- ORDAͷ৽ػೳ - ·ͱΊ
4D Write Pro ৽ػೳ
• ςΩετϘοΫε͕Ճ ‣ ςΩετը૾Λ֨ೲͯ͠ ࣗ༝ͳҐஔʹஔͰ͖ΔΦϒδΣΫτ • ΧελϚΠζࣗ༝ʹՄೳ ‣ ڥքઢഎܠ৭ΛઃఆՄೳ ‣
ը૾ૠೖՄೳ ‣ ҹʹରԠ͍ͯ͠Δ 4D v20ͷ৽ػೳ- 4D Write Pro ςΩετϘοΫε
• docxͷಡΈࠐΈ/docxͷॻ͖ग़͠ʹରԠ ‣ چόʔδϣϯ·ͰςΩετͷΈಡΈࠐΜͰ͍ͨ ‣ ࠓޙʮͦͷ··ʯͷܗͰಡΈࠐΉ͜ͱ͕Մೳ • ॻ͖ग़࣌͠ʹӅ͢͜ͱՄೳ ‣ ϥϯήʔδ·ͨΠϯλʔϑΣʔεͰࢦఆՄೳ
4D v20ͷ৽ػೳ- 4D Write Pro ςΩετϘοΫεͷಡΈࠐΈ/ॻ͖ग़͠
4D v20ͷ৽ػೳ- 4D Write Pro දͷϒϨʔΫߦ
• Write Proͷදػೳ ‣ ORDAͱWrite ProΛΈ߹ΘͤΔ͜ͱ͕Մೳʹͳͬͨ • v20ͰϒϨʔΫߦ͕Ճ͞Εͨ ‣ ද͍ࣔͨ͠ॱʹΤϯςΟςΟηϨΫγϣϯΛιʔτ͓ͯ͘͠
‣ ϒϨʔΫߦʹϑΥʔϛϡϥΛઃఆ͓ͯ͘͠ɺ ʹมԽ͕͋ΕࣗಈతʹϒϨʔΫߦ͕ૠೖ͞ΕΔ 4D v20ͷ৽ػೳ- 4D Write Pro දͷϒϨʔΫߦ
4D View Pro ৽ػೳ
• ςʔϒϧγʔτ֊σʔλ ‣ ֊σʔλʹରԠͨ͜͠ͱʹ͍ల։ંΓͨͨΈ͕Մೳʹ • ྲྀ͜͠Ήσʔλͷ֊ͷࢦఆՄೳʹ ‣ ΠϯλʔϑΣʔε͔ΒઃఆՄೳ ‣ ΧϥϜͷ໊લখܭߦͳͲઃఆՄೳ
4D v20ͷ৽ػೳ- 4D View Pro ςʔϒϧγʔτͷվળ
4D v20ͷ৽ػೳ- 4D View Pro ελΠϧΛࢦఆ͢Δ৽ίϚϯυͷՃ • View Proʹ60Ҏ্ͷελΠϧ͕࠷ॳ͔Β͋Δ ‣
ɹɹɹɹɹɹɹͰදΛ࡞͢Δͱ͖ʹελΠϧΛࢦఆՄೳʹ ‣ ·ͨɺɹɹɹɹɹɹɹɹͰදʹελΠϧΛద༻͢Δ͜ͱ ‣ ಠࣗͷελΠϧΛ࡞ΓࠐΜͰద༻͢Δ͜ͱՄೳ VP CREATE TABLE VP SET TABLE THEME
WEEK 4 ৼΓฦΓ
Webinar WEEK4 ৼΓฦΓ- 4D Go Mobile • ΦʔϓϯιʔεԽ • ίϯϙʔωϯτΛμϯϩʔυ͢Δ
• Pull RequestͰιʔεΛվྑՄೳ • ϞόΠϧ։ൃΛ͠ͳ͍ਓʹͱͬͯ؆ܿʹͳͬͨ
• ҹʹ͓͍ͯORDA͕༻Մೳʹ • ίϨΫγϣϯͷؔՃ • ϩάͷग़ྗͷڧԽ • ܕΛҙࣝ͠ͳ͍ίʔσΟϯά • ΦϒδΣΫτɾίϨΫγϣϯͷϦςϥϧදه
Webinar WEEK4 ৼΓฦΓ- ORDA
Webinar WEEK4 ৼΓฦΓ- 4D Write Pro • ςΩετϘοΫεػೳ͕Ճ ‣ ಡΈࠐΈॻ͖ग़͠ରԠ
• ϒϨʔΫߦͳͲɺදػೳ͕େ͖͘վળ ‣ ϑΥʔϛϡϥΛઃఆ͓ͯ͘͜͠ͱͰࣗಈతʹϒϨʔΫߦՃ ‣ ΤϯςΟςΟηϨΫγϣϯͷࣄલͷιʔτ͕େࣄ
Webinar WEEK4 ৼΓฦΓ- 4D View Pro • ςʔϒϧγʔτػೳͷ֦ு ‣ ֊σʔλʹରԠ
• ελΠϧͷઃఆ͕༰қʹ ‣ SpreadJSʹఆٛࡁΈͷελΠϧΛ໊લͰࢦఆՄೳʹͳͬͨ ‣ දͷ࡞࣌ʹελΠϧΛࢦఆͰ͖Δ͠ޙ͔Βద༻Մೳ
Webinar શମ ৼΓฦΓ- v20ͱ • CI/CDͷՃʹΑ͍ͬͯͬͦ͏։ൃʹઐ೦Մೳ • ORDAͷਐԽ͞ΒͳΔ͕ΓΛݟͤΔ ‣ Write
Proͱ࿈ܞ͕Մೳʹͳͬͨ ‣ ҹҰ༰қʹ • ։ൃऀͷʮָʯ͕ू͍݁ͯ͠Δͱ͍͑Δ ‣ ૯͍͍ͯ͢͡όʔδϣϯ
4D v20 Webinar Week4 - Thank you!