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
20
4D 21 LTS
miyako
0
17
4D 21
miyako
0
39
4D 20 R10
miyako
0
44
4D 20 R9
miyako
0
35
4D 20 R7 & R8
miyako
0
84
Unicodeの話 (2007)
miyako
0
45
Unicodeの話 (2008)
miyako
0
51
Google Apps Integration (2012)
miyako
0
53
Other Decks in Technology
See All in Technology
新しい SLO が良い感じにハマっている話
z63d
5
2.2k
Cursor Meetup Sapporo - Cursor物語 続編
cocacola917
0
140
組織にどうSREを根付かせるか?〜IVRyの場合〜
abnoumaru
0
330
【CEDEC2026】『Relink』を拡張せよ - 『GRANBLUE FANTASY: Relink - Endless Ragnarok』の開発速度と品質を守るCI運用
cygames
PRO
0
140
モダンフロントエンド 開発研修
recruitengineers
PRO
4
570
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
210
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
780
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.2k
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
680
取引先から届く 「セキュリティチェックシート」の読み解き方
kamadamakoto
0
140
オートロックマンションなのに、各部屋は施錠なし!? 攻撃者が組織内ネットワークで大暴れする理由 / The Front Door Is Locked, but the Rooms Are Wide Open: Why Attackers Move Freely Inside Enterprise Networks
nttcom
1
1.6k
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
220
Featured
See All Featured
Amusing Abliteration
ianozsvald
1
240
Navigating Weather and Climate Data
rabernat
0
460
Unsuck your backbone
ammeep
672
58k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
The Language of Interfaces
destraynor
162
27k
A designer walks into a library…
pauljervisheath
211
24k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
790
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.3k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Producing Creativity
orderedlist
PRO
348
40k
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!