Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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 R4
miyako
0
20
4D 21 R2 R3
miyako
0
36
4D 21 LTS
miyako
0
26
4D 21
miyako
0
52
4D 20 R10
miyako
0
55
4D 20 R9
miyako
0
49
4D 20 R7 & R8
miyako
0
95
Unicodeの話 (2007)
miyako
0
57
Unicodeの話 (2008)
miyako
0
66
Other Decks in Technology
See All in Technology
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
180
AIがGISを代替する日:〜すべてをAIが創る時代に、私たちがFOSS4Gに関わる意味〜
lehupa
1
210
SLOを阻む不安
sraku2159
0
230
デザインレビューは自動化できるのか?─ Flutter × Figma で UI 品質保証を考える
techiro
2
800
Software Engineering in an AI-Driven World
erikjhordan_rey
0
120
GCASアップデート(202607-202610)
techniczna
1
200
生成AI時代のIAMのマニアックな話
takuros
6
2.6k
Context Ontology Accelerator 入門 (業務データの意味を、AI エージェントに渡す)
inariku
PRO
3
420
eBPF 簡介 2026 版
shunghsiyu
0
190
登壇はいいぞ! 〜Kaigi on Railsに登壇して起きた3つの変化〜
occhi
0
110
Sinatra on PicoRuby ローカルでセルフホスト
bash0c7
0
100
IoTとは〜? 数字で見るSORACOM UG【SORACOM UG Explorer 2026】
soracom
PRO
0
190
Featured
See All Featured
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
Ruling the World: When Life Gets Gamed
codingconduct
0
430
Designing Powerful Visuals for Engaging Learning
tmiket
1
650
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
880
How to Talk to Developers About Accessibility
jct
2
610
The Cost Of JavaScript in 2023
addyosmani
56
10k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
YesSQL, Process and Tooling at Scale
rocio
174
15k
From π to Pie charts
rasagy
1
440
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
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!