go to post Yuji Ohata · Jul 22 The buildspec.yaml is just to check what git source has compile errors. version: 0.2 env: variables: RESULT: 0 phases: build: commands: # Make Directory for compile check. - mkdir -p /user/local/work # Copy files what get from CodeCommit. - cd .. - cp -r * /user/local/work - chmod -R 777 /user/local/work # Start container's IRIS. - su - irisowner -c "iris start IRIS" # Import check. - su - irisowner -c "iris terminal IRIS \"##CLASS(%SYSTEM.OBJ).ImportDir(\\\"/user/local/work\\\",\\\"*.cls;*.mac;*.int;*.inc;*.dfi\\\",\\\"k\\\",,1)\" " | tee result.txt - sh ./chk_err.sh # Compile check. - su - irisowner -c "iris terminal IRIS \"##CLASS(%SYSTEM.OBJ).CompileAll(\\\"ck\\\")\" " | tee result.txt - sh ./chk_err.sh - su - irisowner -c "iris terminal IRIS \"##CLASS(%Library.MessageDictionary).ImportDir(\\\"/user/local/work/01/res\\\")\" " | tee result.txt - sh ./chk_err_md.sh # These sh is check result.txt that has errors. - post_build: commands: - cd $CODEBUILD_SRC_DIR_main_out - mv make_flg_file.bat ../ - mv appspec.yml ../ - cd .. - mv 00 base - mv 01 main - ls -al And appspec.yaml is to store sources to any directory. version: 0.0 os: windows files: - source: / destination: E:\deploy\base After that, Importing to iris is done by creating an interoperability job and using the file detection mechanism. Import program. ClassMethod ImportDir(path As %String, flag As %String = "k") As %Status { Do ..Log("ImportDir Start:"_path_" / "_flag) Set errorLog = "" Set imported = "" Set selectedlist = "" Set count = 0 If (##class(%File).DirectoryExists(path)) { Set status = $SYSTEM.OBJ.ImportDir(path, "*.cls;*.mac;*.int;*.inc;*.dfi", flag, .errorLog , 1, .imported, , .selectedlist) Set prg = "" For { Set prg = $ORDER(imported(prg)) If (prg = "") { Quit } Set count = count + 1 } } Else { Set status = $$$ERROR($$$GeneralError, "パスが存在しません。"_path) } Do ..Log("ImportDir End:"_count) Return status }
go to post Yuji Ohata · Jul 18 Hi @Ani Mayreddy > Did you execute any specific commands for Interoperability to monitor the files in the pipeline?No. I don't use IRIS Interoperability on the pipeline architecture.The pipeline was created on AWS CodePipeline, and the pipeline runs automatically when pushed to git repository.
go to post Yuji Ohata · Dec 25, 2023 Hi, You need use Persistent class.https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic.... Community article.https://community.intersystems.com/post/art-mapping-globals-classes-1-3 Like this.(Display ^Hban global on Dbeaver what used SQL.) Class Gbl.Hban Extends %Persistent [ SqlRowIdPrivate, StorageStrategy = MyGlobalStorage ] { /// Index Index KeyIndex On (year, key) [ IdKey, Unique ]; /// first key Property year As %Integer [ Required, SqlColumnNumber = 2 ]; /// second key Property key As %String [ Required, SqlColumnNumber = 3 ]; /// third key Property data As %String; Storage MyGlobalStorage { <Description> <![CDATA[]]></Description> <SQLMap name="GblMap"> <Data name="data"> <Delimiter>"^"</Delimiter> <Piece>1</Piece> </Data> <Global>^Hban</Global> <RowIdSpec name="1"> <Expression>{L1}</Expression> <Field>year</Field> </RowIdSpec> <RowIdSpec name="2"> <Expression>{L2}</Expression> <Field>key</Field> </RowIdSpec> <Subscript name="1"> <Expression>{year}</Expression> </Subscript> <Subscript name="2"> <Expression>{key}</Expression> </Subscript> <Type>data</Type> </SQLMap> <StreamLocation>^Gbl.TestS</StreamLocation> <Type>%Storage.SQL</Type> } }
go to post Yuji Ohata · Oct 31, 2023 Dear @Alan Watts Have you checked this page? https://community.intersystems.com/post/git-shared-development-environments
go to post Yuji Ohata · Jan 4, 2022 Hi. I implement CI/CD pipeline of IRIS in AWS without container!I use CodeCommit what is git service and CodeDeploy what is deploy service. When source code(cls files) was pushed to CodeCommit, CodeDeploy executes to pull source files from CodeCommit, and deploy to application server.Application server is installed IRIS, and use Interoperability for monitor deploy files. When Interoperability detects files, executes $SYSTEM.OBJ.DeletePackage(path) and $SYSTEM.OBJ.ImportDir(path, "*.cls;*.mac;*.int;*.inc;*.dfi", flag).
go to post Yuji Ohata · Nov 28, 2021 I think same issue as https://githubmemory.com/repo/intersystems/language-server/issues/186?pa... . @pvdmm Thanks for the log, I think that your problem is due to a couple of missing DLLs: msvcp120.dll and msvcr120.dll These can be installed using the Visual C++ 2013 redistributable package available from https://support.microsoft.com/en-us/topic/update-for-visual-c-2013-redistributable-package-d8ccd6a5-4e26-c290-517b-8da6cfdf4f10 This is a link to an page talking about a bugfix update but it is the latest version (5) of these tools, linked from a Microsoft page titled "The latest supported Visual C++ downloads". Please install this and then try running VSCode again. If this fixes your problem the Language Server team can work out the best way to fix this issue for future installations of the extension.
go to post Yuji Ohata · Nov 7, 2021 Hi! I use ScrollableResultSet class in this case.This class is enable to use Previous() method, and it's able to reset Cursor by using repeatedly.Like this. Set query = "YOUR SQL" Set result = ##class(%ScrollableResultSet).%New("%DynamicQuery:SQL") Set sts = result.Prepare(query) If ($$$ISERR(sts)) { // ERROR } Do result.Execute() If (result.%SQLCODE < 0) { // ERROR } // Show get column data. While (result.%Next()) { Wrtie result.%GetData(1) } // Reset cursor index. While (result.%Previous() > 0) { // Do nothing. } // Show get column data again. While (result.%Next()) { Wrtie result.%GetData(1) }