é²æè¡šç€ºä»ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ïŒæå¹ãªUIãã¿ãŒã³
ãã¥ãŒãã¹ããŒã¿ã¹ã¢ãã«ãUIã¡ãã»ãŒãžããã£ã³ã»ã«ïŒå詊è¡ããšã©ãŒå ±åãªã©ãé²æè¡šç€ºä»ãããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®å®è·µçãªãã¿ãŒã³ãåŠã¶ã

ãªããŠãŒã¶ãŒãããã¯ã°ã©ãŠã³ãåŠçäžã«è¿·ãã®ã
é·æéã®åŠçãUIãå¡ãã¹ãã§ã¯ãããŸããã人ã¯ã¿ããåãæ¿ããããæ¥ç¶ãåããããããŒãããœã³ã³ãéããããåã«äœããèµ·ããŠãããçåã«æããŸããç»é¢ãåºãŸã£ãŠãããšãŠãŒã¶ãŒã¯æšæž¬ãå§ããæšæž¬ã¯ç¹°ãè¿ãã¯ãªãã¯ãäºééä¿¡ããµããŒãåãåããã«ã€ãªãããŸãã
è¯ãããã¯ã°ã©ãŠã³ãåŠçã¯ãä¿¡é Œæããäœãããšã§ãããŠãŒã¶ãŒãæãã®ã¯äž»ã«3ã€ã§ãïŒ
- æç¢ºãªã¹ããŒã¿ã¹ïŒqueued, running, doneïŒ
- æéæïŒå€§ãŸããªèŠç©ããã§ãå¯ïŒ
- 次ã«äœããã¹ãããæç¢ºã§ããããšïŒåŸ ã€ãäœæ¥ãç¶ããããã£ã³ã»ã«ãåŸã§æ»ãïŒ
ãããããªããšããžã§ãã¯æ£åžžã«åããŠããŠãäœéšã¯å£ããããã«æããããŸãã
ãããã誀解ã®äžã€ã¯ãé ããªã¯ãšã¹ãããæ¬åœã®ããã¯ã°ã©ãŠã³ãåŠçãšåãæ±ãã«ããããšã§ããé ããªã¯ãšã¹ãã¯äŸç¶ãšããŠåäžã®WebåŒã³åºãã§ãŠãŒã¶ãŒãåŸ ãããŸããããã¯ã°ã©ãŠã³ãåŠçã¯å¥ç©ã§ãïŒãžã§ããéå§ããŠããã«ç¢ºèªãåãåããéãåŠçã¯å¥ã®å Žæã§è¡ãããUIã¯äœ¿ãç¶ããããŸãã
äŸïŒãŠãŒã¶ãŒã顧客ãã€ã³ããŒãããããã«CSVãã¢ããããŒãããå Žé¢ãUIããããã¯ããããšããŠãŒã¶ãŒã¯ãªããŒãããŠåã¢ããããŒãããéè€ãçºçãããããããŸãããã€ã³ããŒããããã¯ã°ã©ãŠã³ãã§å§ãŸãããžã§ãã«ãŒãã«é²æãšå®å šãªãã£ã³ã»ã«ã衚瀺ãããã°ãäœæ¥ãç¶ããŠçµæã«æ»ãããšãã§ããŸãã
ã³ã¢ã®æ§æèŠçŽ ïŒãžã§ãããã¥ãŒãã¯ãŒã«ãŒãã¹ããŒã¿ã¹
ããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®é²æè¡šç€ºãšèšããšãéåžžã¯4ã€ã®èŠçŽ ã飿ºããŸãã
ãžã§ãã¯äœæ¥åäœã§ãïŒ"ãã®CSVãã€ã³ããŒããã"ã"ãã®ã¬ããŒããçæãã"ã"5,000éã®ã¡ãŒã«ãéã"ãªã©ããã¥ãŒã¯ãžã§ããåŠçããããŸã§åŸ ã€åã§ããã¯ãŒã«ãŒã¯ãã¥ãŒãããžã§ããåãåºããŠäœæ¥ãè¡ããŸãïŒé次ãŸãã¯äžŠåïŒã
UIã«ãšã£ãŠæãéèŠãªã®ã¯ãžã§ãã®ã©ã€ããµã€ã¯ã«ç¶æ ã§ããç¶æ ã¯å°ãªãäºæž¬å¯èœã«ä¿ã¡ãŸãããïŒ
- QueuedïŒåãä»ããããŠã¯ãŒã«ãŒãåŸ ã£ãŠãã
- RunningïŒåŠçäž
- DoneïŒæ£åžžã«å®äº
- FailedïŒãšã©ãŒã§åæ¢
ãã¹ãŠã®ãžã§ãã«ã¯ãžã§ãIDïŒäžæã®åç §ïŒãå¿ èŠã§ãããŠãŒã¶ãŒããã¿ã³ãæŒããããã®IDãå³åº§ã«è¿ããã¿ã¹ã¯ããã«ã«ãã¿ã¹ã¯éå§ãã®è¡ã衚瀺ããŸãã
次ã«ãä»äœãèµ·ããŠãããïŒããåãåãããæ¹æ³ãå¿ èŠã§ããéåžžã¯ãžã§ãIDãåãåãç¶æ ãšé²æã®è©³çްãè¿ãã¹ããŒã¿ã¹ãšã³ããã€ã³ãïŒãŸãã¯ä»»æã®èªã¿åãã¡ãœããïŒã§ããUIã¯ããã䜿ã£ãŠå®äºçãçŸåšã®ã¹ããããã¡ãã»ãŒãžã衚瀺ããŸãã
æåŸã«ãã¹ããŒã¿ã¹ã¯æ°žç¶çãªã¹ãã¢ã«ä¿åãããã¹ãã§ãã¡ã¢ãªã ãã«çœ®ããŠã¯ãããŸãããã¯ãŒã«ãŒã¯ã¯ã©ãã·ã¥ããããã¢ããªã¯åèµ·åãããŠãŒã¶ãŒã¯ããŒãžããªããŒãããŸããæ°žç¶åã¯é²æãšçµæãä¿¡é Œã§ãããã®ã«ããŸããæäœéä¿åãã¹ãé ç®ïŒ
- çŸåšã®ç¶æ ãšã¿ã€ã ã¹ã¿ã³ã
- 鲿å€ïŒããŒã»ã³ããä»¶æ°ïŒ
- çµæã®ãµããªïŒäœãäœãããïŒå€æŽããããïŒ
- ãšã©ãŒè©³çްïŒãããã°ãšãŠãŒã¶åãã¡ãã»ãŒãžïŒ
AppMasterã®ãããªãã©ãããã©ãŒã ã§æ§ç¯ãããªããã¹ããŒã¿ã¹ã¹ãã¢ãä»ã®ããŒã¿ã¢ãã«ãšåæ§ã«æ±ã£ãŠãã ããïŒUIã¯ãžã§ãIDã§èªã¿åããã¯ãŒã«ãŒãé²è¡ã«åãããŠæŽæ°ããŸãã
ã¯ãŒã¯ããŒãã«åã£ããã¥ãŒãã¿ãŒã³ãéžã¶
éžã¶ãã¥ãŒãã¿ãŒã³ã§ã¢ããªã®ãå ¬å¹³ãããšäºæž¬æ§ãå€ãããŸããããã¿ã¹ã¯ãä»ã®å€§éã®ä»äºã®åŸãã«äžŠãã§ãããšããŠãŒã¶ãŒã¯ã©ã³ãã ãªé å»¶ãçµéšããŸãããã¥ãŒã®éžæã¯ã€ã³ãã©ã ãã§ãªãUXã®æ±ºå®ã§ããããŸãã
ããªã¥ãŒã ãå°ãªãããžã§ããçããææã®ãªãã©ã€ã蚱容ã§ãããªããåçŽã«ããŒã¿ããŒã¹ã§ãã¥ãŒãå®è£ ããã ãã§ååãªããšãå€ãã§ããèšå®ãç°¡åã§æ€æ»ãããããããã¹ãŠãäžãæã§ç®¡çã§ããŸããäŸïŒç®¡çè ãå°ããªããŒã åãã«å€éã¬ããŒããå®è¡ããå Žåããã1åãªãã©ã€ããŠã倧ããªåé¡ã«ãªããŸããã
ã¹ã«ãŒããããäžããããžã§ããéããä¿¡é Œæ§ãäžå¯æ¬ ã«ãªããšå°çšã®ãã¥ãŒã·ã¹ãã ãå¿ èŠã«ãªããŸããã€ã³ããŒãããããªåŠçã倧ééç¥ãåèµ·ååŸã確å®ã«ç¶ããå¿ èŠãããã¯ãŒã¯ãããŒã¯ãå颿§ãå¯èŠæ§ãå®å šãªãªãã©ã€ãããæ¹ãæå©ã§ããããã¯ãŠãŒã¶ãŒåã鲿ã«åœ±é¿ããŸããäººã¯æŽæ°ãæ¢ãŸã£ããã¹ã¿ãã¯ããç¶æ ã«æ°ä»ããŸãã
ãã¥ãŒæ§é ã¯åªå 床ã«ã圱é¿ããŸãã1ã€ã®ãã¥ãŒã¯åçŽã§ãããçæéã§åŠçãã¹ãäœæ¥ãšé·æéã®ãããäœæ¥ãæ··ãããšãçãæ¹ãé ãæããããŸãããŠãŒã¶ãŒãåŒãèµ·ãã峿æ§ã®ããäœæ¥ãšãåŸ ãŠãã¹ã±ãžã¥ãŒã«äœæ¥ãåãããšè¯ãã§ãããã
åæå®è¡æ°ã¯æå³çã«èšå®ããŠãã ããã䞊å床ãé«ããããšããŒã¿ããŒã¹ã«è² è·ãããã鲿ãé£ã³é£ã³ã«ãªããŸããå°ãªããããšã·ã¹ãã å šäœãé ãæããããŸããåãã¥ãŒããšã«å°ããäºæž¬å¯èœãªäžŠå床ããå§ããå®äºæéã®å®å®æ§ãä¿ãŠããšãã ãå¢ãããŸãããã
UIã§è¡šç€ºã§ãã鲿ã¢ãã«ã®èšèš
鲿ã¢ãã«ãææ§ã ãšUIãææ§ã«æããããŸããã·ã¹ãã ãæ£çŽã«å ±åã§ããããšãã©ããããã®é »åºŠã§å€ãããããŠãŒã¶ãŒããã®æ å ±ã§äœããã¹ãããæ±ºããŠãã ããã
å€ãã®ãžã§ãã§å¯Ÿå¿ã§ããã·ã³ãã«ãªã¹ããŒã¿ã¹ã¹ããŒãã®äŸïŒ
- state: queued, running, succeeded, failed, canceled
- percent: 枬å®ã§ããå Žåã¯0-100
- message: ãŠãŒã¶ãŒãçè§£ã§ããçãäžæ
- timestamps: created, started, last_updated, finished
- result_summary: processed, skipped, errors ãªã©ã®ä»¶æ°
次ã«ã鲿ããäœãšå®çŸ©ãããæ±ºããŸãã
忝ãæç¢ºïŒãã¡ã€ã«ã®è¡æ°ãéä¿¡ããã¡ãŒã«æ°ïŒãªå Žåã¯ããŒã»ã³ãã䜿ããŸãã第äžè åŸ ã¡ãèšç®è² è·ã®å€åãéãã¯ãšãªãªã©äºæž¬äžèœãªåŠçã§ã¯èª€è§£ãæãããšããããŸãããã®å Žåã¯ã¹ãããããŒã¹ã®é²æãä¿¡é Œãé«ããŸãã
å®çšã«ãŒã«ïŒ
- ãX of Yããæ£çŽã«å ±åã§ããå Žå㯠percent ã䜿ãã
- æéãäžæãªå Žå㯠stepsïŒäŸïŒValidate fileãImportãRebuild indexesãFinalizeïŒã䜿ãã
- ã©ã¡ããäžå¯èœãªå Žå㯠indeterminate ãªé²æã«ããŠãã¡ãã»ãŒãžãããŸãã«æŽæ°ããã
ãžã§ãå®è¡äžã«éšåçãªçµæãä¿åããŠãããšããžã§ãå®äºåã§ãUIã§æçãªæ å ±ïŒã©ã€ããšã©ãŒæ°ã倿Žã®ãã¬ãã¥ãŒïŒã衚瀺ã§ããŸããCSVã€ã³ããŒããªã rows_readãrows_createdãrows_updatedãrows_rejected ãšãã£ãå€ãçŽè¿ã®ãšã©ãŒã¡ãã»ãŒãžãä¿åãããšè¯ãã§ãããã
ããããŠãŒã¶ãŒã«ä¿¡é Œãããããã¯ã°ã©ãŠã³ãã¿ã¹ã¯ã®åºç€ã§ãïŒUIã¯èœã¡çããæ°å€ã¯é²ã¿ãå®äºæã«ãäœãèµ·ããããèŠçŽãçšæãããŸãã
é²ææŽæ°ã®é ä¿¡æ¹æ³ïŒããŒãªã³ã°ãããã·ã¥ããã€ããªãã
ããã¯ãšã³ãããç»é¢ãžã®é²æã®å±ãæ¹ã§å€ãã®å®è£ ã倱æããŸãã鲿ãã©ã®ãããé »ç¹ã«å€ããããšãäœäººã®ãŠãŒã¶ãŒãèŠå®ããã«åã£ãæ¹æ³ãéžãã§ãã ããã
ããŒãªã³ã°ã¯æãã·ã³ãã«ã§ãïŒUIãNç§ããšã«ã¹ããŒã¿ã¹ãåãåãããŸãããŠãŒã¶ãŒãç»é¢ãèŠãŠããéã¯2ã5ç§ãè¯ãããã©ã«ãã§ã1å以äžç¶ãã¿ã¹ã¯ãªã10ã30ç§ã«èœãšããŸããã¿ããããã¯ã°ã©ãŠã³ãã®å Žåã¯ããã«é ãããŸãã
ããã·ã¥ïŒWebSocketãServer-Sent Eventsãã¢ãã€ã«éç¥ïŒã¯é²æãéãå€ããããä»ããç¥ããããå Žé¢ã§æå¹ã§ãã峿æ§ã«åªããŸãããæ¥ç¶ãåããå Žåã®ãã©ãŒã«ããã¯ãå¿ é ã§ãã
ãã€ããªãããæé©ãªããšãå€ãïŒéå§çŽåŸã¯éãããŒãªã³ã°ïŒqueuedârunning ãçŽ æ©ããã£ããããããïŒããžã§ããå®å®ãããé ããããããã·ã¥ã远å ããå Žåã§ãå®å šã®ããã«é ãããŒãªã³ã°ãæ®ããŠãããŸãã
æŽæ°ãæ¢ãŸã£ãããããäžçŽã®ç¶æ ãšããŠæ±ã£ãŠãã ããããæçµæŽæ° 2ååããšè¡šç€ºããŠæŽæ°ãä¿ããªã©ãããã¯ãšã³ãã§ã¯ããŒãããŒããéåãããžã§ãã stale ãšããŠããŒã¯ããŸãã
é·æéåŠçã®ããã®æçãªUIãã¿ãŒã³
æçãã¯2ã€ã®èŠçŽ ã§çãŸããŸãïŒå°æ°ã§äºæž¬å¯èœãªç¶æ ãšã次ã«äœãèµ·ããããäŒããæç« ã§ãã
ç¶æ ã¯UIã§ãååãä»ããŠèŠããŠãã ããããžã§ã㯠queuedïŒé çªåŸ ã¡ïŒãrunningïŒåŠçäžïŒãwaiting for inputïŒå ¥ååŸ ã¡ïŒãcompletedïŒå®äºïŒãcompleted with errorsïŒåé¡ããã§å®äºïŒãfailedïŒå€±æïŒãªã©ã«åããããŸãããŠãŒã¶ãŒãããããåºå¥ã§ããªããšã¢ããªãåºãŸã£ããšæããŸãã
é²æè¡šç€ºã®è¿ãã«ã¯å¹³æã§æçšãªæèšã眮ããŸããäŸïŒ"Importing 3,200 rows (1,140 processed)" ã¯åã« "Processing." ãããã£ãšè¯ãã§ãã1è¡ã§ãé¢ããŠãããããäœãèµ·ãããããçãããšèŠªåã§ããäŸïŒããã®ãŠã£ã³ããŠãéããŠã倧äžå€«ã§ããããã¯ã°ã©ãŠã³ãã§ã€ã³ããŒããç¶ããå®äºæã«éç¥ããŸããã
鲿ã衚瀺ããå Žæã¯ãŠãŒã¶ãŒã®æèã«åãããŸãïŒ
- 次ã®ã¹ãããããããã¯ããããšãã¯ã¢ãŒãã«ïŒäŸïŒä»ããå¿ èŠãªè«æ±æžPDFãçæïŒ
- äžæãããããªãçæéã®åŠçãªãããŒã¹ã
- é ç®ããšã®æäœãªãããŒãã«è¡å ã§ã®ã€ã³ã©ã€ã³é²æ
1å以äžããããã®ã¯ Jobs ããŒãžã Activity ããã«ãçšæããŠããŠãŒã¶ãŒãåŸã§äœæ¥ãèŠã€ããããããã«ããŸãã
æç¢ºãªé·æéåŠçUIã«ã¯éåžžãæçµæŽæ°æéä»ãã®ã¹ããŒã¿ã¹ã©ãã«ã鲿ããŒïŒãŸãã¯ã¹ãããïŒãäžè¡ã®è©³çްã å®å šãªãã£ã³ã»ã«åäœããµããªã𿬡ã¢ã¯ã·ã§ã³ã®é åãå«ãŸããŸããå®äºãããžã§ãã¯ããšã§åç §ã§ããããã«ããŠããŠãŒã¶ãŒãäžã€ã®ç»é¢ã§åŸ ããããå¿ èŠããªãããã«ããŸãã
ãåé¡ããã§å®äºãããŠãŒã¶ãŒã«åãããããå ±åãã
ãå®äºãïŒæåãšã¯éããŸãããäŸãã°9,500ä»¶äž120ä»¶ã倱æããå ŽåããŠãŒã¶ãŒã¯ãã°ãèªãŸãã«äœãèµ·ãããææ¡ãããã¯ãã§ãã
éšåæåãæ£åœãªçµæãšããŠæ±ã£ãŠãã ãããã¡ã€ã³ã®ã¹ããŒã¿ã¹è¡ã§äž¡æ¹ã瀺ããŸãïŒ"Imported 9,380 of 9,500. 120 failed."ãæ£çŽã«ç€ºãããšã§ä¿¡é Œãä¿ãŠãŸãã
次ã«ãŠãŒã¶ãŒã察å¿ã§ããå°ããªãšã©ãŒãµããªã瀺ããŸãïŒ"Missing required field (63)", "Invalid date format (41)" ã®ããã«ãæçµç¶æ 㯠"Completed with issues" ã®ã»ãã "Failed" ãããåãããããããšãå€ãã§ãã
ãšã¯ã¹ããŒãå¯èœãªãšã©ãŒã¬ããŒãã¯æ··ä¹±ãã¿ã¹ã¯ã«å€ããŸããã·ã³ãã«ã«ïŒè¡çªå·ãã¢ã€ãã èå¥åããšã©ãŒåé¡ããŠãŒã¶ãŒåãã®èª¬æã該åœãã£ãŒã«ãåã
次ã«åãã¢ã¯ã·ã§ã³ïŒããŒã¿ãä¿®æ£ããŠå€±æåã ãå詊è¡ããšã©ãŒã¬ããŒããããŠã³ããŒããã·ã¹ãã åŽã®åé¡ãªããµããŒãã«é£çµ¡ïŒããµããªã®è¿ãã«çœ®ããŠãã ããã
ä¿¡é Œã§ãããã£ã³ã»ã«ãšå詊è¡ã®èšèš
ãã£ã³ã»ã«ãšå詊è¡ã¯èŠãç®ã¯ç°¡åã§ãããUIãšå®æ ãããããšä¿¡é Œã倱ããŸããåãžã§ãã¿ã€ãã§ Cancel ã®æå³ãå®çŸ©ãããããUIã§æ£çŽã«åæ ããŠãã ããã
äžè¬ã«æå¹ãªãã£ã³ã»ã«ã¢ãŒãã¯2ã€ã§ãïŒ
- "Stop now"ïŒã¯ãŒã«ãŒããã£ã³ã»ã«ãã©ã°ãé »ç¹ã«ç¢ºèªããŠããçµäºãã
- "Stop after this step"ïŒçŸåšã®ã¹ãããã¯å®äºããããã®åŸãžã§ãã忢ãã
UIã§ã¯ "Cancel requested" ã®ãããªäžéç¶æ ã衚瀺ããŠããŠãŒã¶ãŒãç¹°ãè¿ãæŒããªãããã«ããŸãã
ãã£ã³ã»ã«ãå®å šã«ããã«ã¯åŠçãç¹°ãè¿ãå®è¡ããŠãåé¡ãªãïŒåªçïŒã«èšèšããããšã倧åã§ããCSVã€ã³ããŒããã¬ã³ãŒããäœæãããªããžã§ãå®è¡IDãä¿åããŠãrun #123 ãã©ã®ããã«å€ããããåŸã§ç¢ºèªã§ããããã«ããŸãã
å詊è¡ã«ãåãæå¿«ããå¿ èŠã§ããåéã§ãããªãåããžã§ãã€ã³ã¹ã¿ã³ã¹ã®ãªãã©ã€ã¯åççã§ãããã¯ãªãŒã³ãªå®è¡ãç£æ»ãæ®ããããªãæ°ãããžã§ãIDãäœãæ¹ãå®å šã§ãããããã«ããäœãèµ·ãããã説æããŠãã ããã
å®ãã¹ãã¬ãŒãã¬ãŒã«ïŒ
- ãªãã©ã€åæ°ã«äžéãèšããåæ°ã衚瀺ãã
- ãžã§ããå®è¡äžã®é㯠Retry ãç¡å¹ã«ãã
- ã¡ãŒã«ã決æžãªã©å¯äœçšãéè€ãããæããããå Žåã¯ç¢ºèªãæ±ãã
- 詳现ããã«ã§æåŸã®ãšã©ãŒãšæåŸã«æåããã¹ãããã衚瀺ãã
ã¹ããããã€ã¹ãããïŒã¯ãªãã¯ããå®äºãŸã§ã®ãšã³ãããŒãšã³ããããŒ
è¯ããããŒã¯äžã€ã®ã«ãŒã«ããå§ãŸããŸãïŒUIã¯äœæ¥èªäœãåŸ ããªããåŸ ã€ã®ã¯ãžã§ãIDã ãã
ãããŒïŒãŠãŒã¶ãŒã®ã¯ãªãã¯ããæçµç¶æ ãŸã§ïŒ
-
ãŠãŒã¶ãŒãã¿ã¹ã¯ãéå§ããAPIã¯å³åº§ã«å¿çããã ãŠãŒã¶ãŒãImportãGenerate reportãæŒããšããµãŒãã¯ããã«ãžã§ãã¬ã³ãŒããäœæããŠãŠããŒã¯ãªãžã§ãIDãè¿ããŸãã
-
äœæ¥ããã¥ãŒã«å ¥ããåæã¹ããŒã¿ã¹ãèšå®ããã ãžã§ãIDããã¥ãŒã«å ¥ããprogress 0% ã§ queued ã«ã»ããããŸããã¯ãŒã«ãŒãæŸãåã§ãUIã«è¡šç€ºããå®äœãã§ããŸãã
-
ã¯ãŒã«ãŒãå®è¡ã鲿ãå ±åããã ã¯ãŒã«ãŒãéå§ããã status ã running ã«ããéå§æéãä¿åããå°ããæ£çŽãªã¹ãããã§é²æãæŽæ°ããŸããããŒã»ã³ããæž¬ããªãå Žå㯠ParsingãValidatingãSaving ã®ãããªã¹ãããã衚瀺ããŸãã
-
UIã¯ãŠãŒã¶ãŒã®åããä¿ã€ã UIã¯ããŒãªã³ã°ãŸãã¯ãµãã¹ã¯ã©ã€ãããŠæŽæ°ãæç»ããçãã¡ãã»ãŒãžïŒçŸåšäœãããŠãããïŒãšãã®æã«å¯èœãªã¢ã¯ã·ã§ã³ã ãã衚瀺ããŸãã
-
æ°žç¶çãªçµæã§æçµåããã å®äºæã« finish timeãåºåïŒããŠã³ããŒãåç §ãäœæãããIDããµããªã«ãŠã³ãïŒããšã©ãŒè©³çްãä¿åããŸããFinished-with-errors ãææ§ãªæåãšããŠæ±ããªãã§ãã ããã
ãã£ã³ã»ã«ãšå詊è¡ã®ã«ãŒã«
ãã£ã³ã»ã«ã¯æç¢ºã«ïŒãã£ã³ã»ã«ã¯ãŸããªã¯ãšã¹ããåºããã¯ãŒã«ãŒããããåãåããã£ã³ã»ã«æžã¿ã«ããŒã¯ããŸãããªãã©ã€ã¯æ°ãããžã§ãIDãäœãã®ãå®å šã§ãå ã®ãžã§ãã¯å±¥æŽãšããŠæ®ããŸãã
äŸïŒé²æãšéšåç倱æã䌎ãCSVã€ã³ããŒã
CSVã€ã³ããŒãã¯é²æè¡šç€ºãéèŠã«ãªãå žåäŸã§ããCRMã§ sales ops ã customers.csvïŒ8,420è¡ïŒãã¢ããããŒãããå Žé¢ãæ³åããŠãã ããã
ã¢ããããŒãçŽåŸã«UIã¯ããã¿ã³ãæŒããç¶æ ãããããžã§ããäœæãããé¢ããŠããããžåãæ¿ããã¹ãã§ããImportsããŒãžã®ã·ã³ãã«ãªãžã§ãã«ãŒããæå¹ã§ãïŒ
- Upload received: "File uploaded. Validating columns..."
- Queued: "Waiting for an available worker (2 jobs ahead)."
- Running: "Importing customers: 3,180 of 8,420 processed (38%)."
- Wrapping up: "Saving results and building a report..."
å®è¡äžã¯ãŠãŒã¶ãŒãä¿¡çšã§ãã1ã€ã®é²ææ°ïŒåŠçæžã¿è¡æ°ïŒãšçãã¹ããŒã¿ã¹è¡ïŒä»äœãããŠãããïŒã衚瀺ããŸãããŠãŒã¶ãŒãé¢ããŠããRecent jobs ã«ãžã§ããæ®ããŠãããŸãã
éšå倱æã远å ããå Žåãå®äºæã«æã Failed ãããŒã¯é¿ããŠãã ããã代ããã« Finished with issues ãšããŠæç¢ºã«åããŸãïŒ
Imported 8,102 customers. Skipped 318 rows.
äžäœã®åå ãå¹³æãªèšèã§ç€ºããŸãïŒç¡å¹ãªã¡ãŒã«åœ¢åŒãcompany ã®ãããªå¿ é ãã£ãŒã«ãã®æ¬ èœãéè€ããå€éšIDãªã©ããšã©ãŒããŒãã«ïŒè¡çªå·ã顧客åã該åœãã£ãŒã«ãïŒãããŠã³ããŒããŸãã¯é²èЧã§ããããã«ããŸãã
å詊è¡ã¯å®å šã§å ·äœçã«æããããã¹ãã§ããäž»èŠãªã¢ã¯ã·ã§ã³ã¯ "Retry failed rows" ãšããŠæ°ãããžã§ããäœãããŠãŒã¶ãŒãCSVãä¿®æ£ããåŸã« 318 è¡ã ãååŠçããããã«ããŸããå ã®ãžã§ãã¯èªã¿åãå°çšã«ããŠå±¥æŽãä¿ã¡ãŸãã
æåŸã«ãçµæãåŸã§ç°¡åã«èŠã€ããããããã«ããŸããåã€ã³ããŒãã¯å®å®ãããµããªïŒèª°ãå®è¡ãããããã€ããã¡ã€ã«åãä»¶æ°ããšã©ãŒã¬ããŒããéãæ¹æ³ïŒãæã€ã¹ãã§ãã
鲿ãšå詊è¡ã§æ··ä¹±ãæãããããééã
ä¿¡é Œã倱ãæçã«ãŒãã¯å®æ ãšåããªãæ°å€ã衚瀺ããããšã§ãã0%ã®ãŸãŸ2忢ãŸã£ãŠãã90%ã«é£ã¶é²æããŒã¯æšæž¬ã«èŠããŸããçã®ããŒã»ã³ããäžæãªããã¹ããã衚瀺ïŒQueuedãProcessingãFinalizingïŒã "X of Y items processed" ã䜿ã£ãŠãã ããã
ããäžã€ã®åé¡ã¯é²æãã¡ã¢ãªã ãã«ä¿åããããšã§ããã¯ãŒã«ãŒãåèµ·åãããšUIããžã§ãã "å¿ãã" ã鲿ããªã»ãããããŸãããžã§ãç¶æ ã¯æ°žç¶ã¹ãã¬ãŒãžã«ä¿åããUIã¯ãã®åäžã®ä¿¡é Œã§ãããœãŒã¹ããèªã¿åãããã«ããŸãããã
ãªãã©ã€UXãå£ããã®ã¯ããŠãŒã¶ãŒãåããžã§ããäœåºŠãéå§ã§ããå Žåã§ããImport CSV ãã¿ã³ãæå¹ãªãŸãŸã ãšèª°ããäºåºŠã¯ãªãã¯ããŠéè€ãçããŸããã©ã®å®è¡ãä¿®æ£ãã¹ããåããã«ãããªããŸãã
ç¹°ãè¿ãåºã誀ãïŒ
- å®äœæ¥ãšåããªãåœã®ããŒã»ã³ã衚瀺
- ãšã³ããŠãŒã¶ãŒã«æè¡çãªãšã©ãŒãã³ãïŒã¹ã¿ãã¯ãã¬ãŒã¹ãã³ãŒãïŒããã®ãŸãŸèŠãã
- ã¿ã€ã ã¢ãŠããéè€ãåªçæ§ãžã®ç¡å¯Ÿç
- ãªãã©ã€ãäœãããã説æããªãã§æ°ãããžã§ããäœã
- ãã£ã³ã»ã«ãUIã ãå€ããŠã¯ãŒã«ãŒã«åœ±é¿ãäžããªã
å°ããªãéèŠãªç¹ïŒãŠãŒã¶ãŒåãã¡ãã»ãŒãžãšéçºè åãã®è©³çްãåããããšããŠãŒã¶ãŒã«ã¯ "12 rows failed validation" ãšç€ºããæè¡çãªãã¬ãŒã¹ã¯ãã°ã«æ®ããŸãã
ãªãªãŒã¹åã®ãã§ãã¯ãªã¹ãïŒçãïŒ
ãªãªãŒã¹åã«ãŠãŒã¶ãŒãç®ã«ããéšåãç°¡åã«ç¢ºèªããŠãã ããïŒæç¢ºããä¿¡é Œãå埩ã
åãžã§ãã¯ã©ãã§ã衚瀺ã§ããã¹ãããã·ã§ãããæäŸãã¹ãã§ãïŒç¶æ ïŒqueued, running, succeeded, failed, canceledïŒã鲿ïŒ0-100ãŸãã¯ã¹ãããïŒãçãã¡ãã»ãŒãžãã¿ã€ã ã¹ã¿ã³ããçµæãã€ã³ã¿ïŒåºåãã¬ããŒãã®å ŽæïŒã
UIç¶æ ãæç¢ºãã€äžè²«ããŠãããŸãããŠãŒã¶ãŒã¯çŸåšãšéå»ã®ãžã§ããèŠã€ããä¿¡é Œã§ããå Žæãå¿ èŠã§ãïŒ"æšæ¥å®äº"ã"ãŸã å®è¡äž"ïŒãRecent jobs ããã«ãç¹°ãè¿ãã¯ãªãã¯ãéè€ãé²ããŸãã
ãã£ã³ã»ã«ãšãªãã©ã€ã®ã«ãŒã«ãå¹³æã«å®çŸ©ããŸããåãžã§ãã§ Cancel ãäœãæå³ãããããªãã©ã€ãèš±å¯ãããããäœãåå©çšããããïŒåãå ¥åãæ°ãããžã§ãIDãïŒã決ããå¢çã±ãŒã¹ïŒå®äºçŽåã«ãã£ã³ã»ã«ïŒããã¹ãããŸãã
éšå倱æã¯æ£åŒãªçµæãšããŠæ±ããçããµããªïŒ"Imported 97, skipped 3"ïŒã衚瀺ãããŠãŒã¶ãŒãããã«äœ¿ããå®è¡å¯èœãªã¬ããŒããæäŸããŸãã
å埩ãèšç»ããŸãããžã§ãã¯åèµ·åã«èããã¹ãã§ãã¹ã¿ãã¯ãããžã§ãã¯æç¢ºãªç¶æ ã«ã¿ã€ã ã¢ãŠããïŒ"å詊è¡" ã "ãµããŒããžé£çµ¡"ïŒããžã§ãIDã䜿ã£ãŠå¯Ÿå¿ã§ããããã«ããŸãã
次ã®ã¹ãããïŒäžã€ã®ã¯ãŒã¯ãããŒãå®è£ ããŠåºãã
æ¢ã«äžæºãåºãŠããã¯ãŒã¯ãããŒãäžã€éžãã§ãã ããïŒCSVã€ã³ããŒããã¬ããŒããšã¯ã¹ããŒããäžæ¬ã¡ãŒã«éä¿¡ãç»ååŠçãªã©ãå°ããå§ããŠåºæ¬ã蚌æããŸãïŒãžã§ããäœãããå®è¡ãããã¹ããŒã¿ã¹ãå ±åãããŠãŒã¶ãŒãåŸã§èŠã€ããããããšã
ã·ã³ãã«ãªãžã§ãå±¥æŽç»é¢ã¯ãã°ãã°å質ã倧ããæ¹åããŸããã¹ãããŒãçºãç¶ãã代ããã«æ»ã£ãŠç¢ºèªã§ããå ŽæãäžããŸãã
ãŸãäžã€ã®é²æé ä¿¡æ¹æ³ãéžãã§ãã ãããããŒãžã§ã³1ã§ã¯ããŒãªã³ã°ã§ååã§ããããã¯ãšã³ãã«åªãããããã§ããŠãçããŠãããæè§ŠãåŸããããªãã¬ãã·ã¥ééã«èšå®ããŸãã
æžãçŽããé¿ããå®çšçãªæ§ç¯é åºïŒ
- ãŸããžã§ãã®ç¶æ ãšé·ç§»ãå®è£ ïŒqueued, running, succeeded, failed, finished-with-errorsïŒ
- åºæ¬ãã£ã«ã¿ïŒéå»24æéãèªåã®ãžã§ãã®ã¿ïŒãåãããžã§ãå±¥æŽç»é¢ã远å
- æ£çŽã«ä¿ãŠãå Žåã®ã¿é²ææ°å€ã远å
- äžè²«ããã¯ãªãŒã³ã¢ãããã§ããããã«ãªã£ãŠãããã£ã³ã»ã«ã远å
- ãžã§ããåªçã«ãªã£ãŠãããšç¢ºä¿¡ã§ããŠãããªãã©ã€ã远å
ã³ãŒããæžããã«ãããæ§ç¯ããå ŽåãAppMaster ã®ãããªããŒã³ãŒããã©ãããã©ãŒã ã¯ãžã§ãã¹ããŒã¿ã¹ããŒãã«ïŒPostgreSQLïŒãã¢ãã«åããã¯ãŒã¯ãããŒããæŽæ°ããŠWebãã¢ãã€ã«UIã«åæ ããã®ã«åœ¹ç«ã¡ãŸããããã¯ãšã³ããUIãããã¯ã°ã©ãŠã³ãããžãã¯ãäžã€ã®å Žæã§äœãããããŒã ã«ã¯ AppMaster (appmaster.io) ãåããŠããŸãã
ãããã質å
ããã¯ã°ã©ãŠã³ããžã§ãã¯ããã«éå§ãããçŽã¡ã«ãžã§ãIDãè¿ããããUIã¯äœ¿ãç¶ããããŸããé ããªã¯ãšã¹ãã¯åãWebåŒã³åºããçµãããŸã§ãŠãŒã¶ãŒãåŸ ãããã®ã§ããªãã¬ãã·ã¥ãäºééä¿¡ãéè€ãèµ·ãããããªããŸãã
ã·ã³ãã«ã«ããŠãããŸããã: queued, running, done, failedããã£ã³ã»ã«ããµããŒããããªã canceled ã衚瀺ããŸãã倧åã®åŠçãæåãããäžéšå€±æããå Žåã¯ãdone with issuesãã®ãããªå¥ã®çµæã远å ãããšããŠãŒã¶ãŒã¯å
šãŠã倱ããããšèª€è§£ããŸããã
ãŠãŒã¶ãŒãã¢ã¯ã·ã§ã³ãå§ãããããã«ãŠããŒã¯ãªãžã§ãIDãè¿ãããã®IDã§ã¿ã¹ã¯è¡ãã«ãŒãã衚瀺ããŠãã ãããUIã¯ãžã§ãIDã§ã¹ããŒã¿ã¹ãèªã¿åãã¹ããªã®ã§ãããŒãžããªããŒããããã¿ããåãæ¿ããŠãã¿ã¹ã¯ãèŠå€±ããŸããã
ãžã§ãã¹ããŒã¿ã¹ã¯ã¡ã¢ãªã ãã§ãªãæ°žç¶ããŒã¿ããŒã¹ã®ããŒãã«ã«ä¿åããŠãã ãããçŸåšã®ç¶æ ãã¿ã€ã ã¹ã¿ã³ãã鲿å€ãçããŠãŒã¶åãã¡ãã»ãŒãžãçµæããšã©ãŒã®èŠçŽãä¿åããã°ãåèµ·ååŸã§ãåã衚瀺ã埩å ã§ããŸãã
ãXïŒY ä»¶åŠçæžã¿ããšæ£çŽã«å ±åã§ããå Žåã®ã¿ããŒã»ã³ãã䜿ã£ãŠãã ããã忝ãäžæãªå Žåã¯ã¹ãããããŒã¹ïŒäŸ: ValidatingãImportingãFinalizingïŒã䜿ãããŠãŒã¶ãŒã«åé²ããŠãã宿ãäžããŸãã
ããŒãªã³ã°ã¯æãç°¡åã§å€ãã®ã¢ããªã«ååã§ãããŠãŒã¶ãŒãèŠãŠããéã¯2ã5ç§ããšãé·æéãªã10ã30ç§ã«èœãšãã®ãè¯ãåºçºç¹ã§ããããã·ã¥ã¯å³ææ§ã«åªããŸããæ¥ç¶åãã®ãã©ãŒã«ããã¯ãå¿ èŠã§ãã
æŽæ°ãæ¢ãŸã£ãã "æçµæŽæ°: 2åå" ã®ããã«å€ããªã£ãããšã瀺ããæåã§æŽæ°ã§ããããã«ããŸããããã¯ãšã³ãã§ã¯ããŒãããŒããéåãããžã§ããæ€åºããŠãå詊è¡ããµããŒãé£çµ¡ãä¿ãæç¢ºãªç¶æ ã«ç§»ãã¹ãã§ãã
次ã«äœãã§ããããæç¢ºã«ç€ºããŠãã ããããŠãŒã¶ãŒãäœæ¥ãç¶ããŠããã®ããããŒãžãé¢ããŠãããã®ãããã£ã³ã»ã«ããŠå®å šãã©ããã1å以äžãããåŠçãªã Jobs ã Activity ãã¥ãŒãçšæããŠãçµæãåŸã§ç¢ºèªã§ããããã«ããŸãã
éšåçãªå€±æãæ£åŒãªçµæãšããŠæ±ããäž¡æ¹ãæç€ºããŸã: äŸãšã㊠"Imported 9,380 of 9,500. 120 failed."ããã®åŸããŠãŒã¶ãŒã察å¿ã§ããç°¡æœãªãšã©ãŒãµããªïŒäŸ: å¿ é ãã£ãŒã«ããæ¬ ããŠãã (63)ãæ¥ä»åœ¢åŒãç¡å¹ (41)ïŒã瀺ããŸããæè¡çãªè©³çްã¯å éšãã°ã«æ®ããŠãã ããã
åãžã§ãã¿ã€ãã§ Cancel ã®æå³ãå®çŸ©ãããããæ£çŽã«åæ ããŠãã ãããäžéç¶æ ãšã㊠"Cancel requested" ã衚瀺ããŠããŠãŒã¶ãŒãäœåºŠãæŒããªãããã«ããŸããåŠçã¯å¯èœãªéãåªçã«ãããªãã©ã€åæ°ãå¶éãããªãã©ã€ãåããžã§ããåéããã®ãæ°ãããžã§ããäœãã®ããæç€ºããŸãã


