Hi team,
i am trying to create a Quiz Application by importing a question from excel sheet and get the question in interface. For each page one question must come when clicking next question q.no -2 must come in this I used only interface it is redirecting but In process model 1 st question only coming and the node is ending. give some suggestions for how to overcome this issue.
Discussion posts and replies are publicly visible
Hi balamanchari murugadas ,
could you elaborate more to better understand.
As per my understanding when you click on next button the process is ending instead of next question on the screen, i suspect you have used 'submit:true()' parameter in the next button. so the process is ending. Make sure 'submit:false' if you are using userinput task in the process.
a!localVariables( local!batchSize: 1, local!totalQuestions : 89, local!currentIndex: 1, local!pagingInfo: a!pagingInfo( startIndex: local!currentIndex, batchSize: local!batchSize ), local!exams: a!queryEntity( entity: cons!OQA_excelData_Cons, query: a!query( pagingInfo: local!pagingInfo ) ), local!currentQuestion: if( local!currentIndex <= local!totalQuestions, index(local!exams.data, 1), null ), local!score : 0,
a!formLayout( contents: { a!sectionLayout( contents: { a!textField( value: local!currentQuestion.Qno, readOnly: true ), a!textField( label: "Question", value: local!currentQuestion.Questions, readOnly: true ), a!paragraphField( label: "Options", value: local!currentQuestion.Options, readOnly: true ), a!textField( label: "Answer", value: local!currentQuestion.SelectedAnswer, saveInto: local!currentQuestion.SelectedAnswer, required: true ) }, showWhen: ri!showChild = false ), rule!OQA_score_interface( showChild: ri!showChild = true, scores: ri!score),
a!columnsLayout( columns: {
a!columnLayout( contents: { a!buttonArrayLayout( buttons: { a!buttonWidget(
label: if( local!currentIndex < local!totalQuestions - 1, "Next", "Submit" ), iconPosition: "END", saveInto: { if( local!currentIndex < local!totalQuestions, a!save( local!currentIndex, local!currentIndex + 1 ), {} ), a!save( local!score, if( local!currentQuestion.SelectedAnswer = local!currentQuestion.Answers, local!score + 1, local!score ) ), a!save( ri!score, if( local!currentQuestion.SelectedAnswer = local!currentQuestion.Answers, local!score , local!score ) ), a!save( ri!showChild, if( local!currentIndex = local!totalQuestions, true, false ) ),
a!save( ri!score, ri!scores.score ), a!save( ri!report_data.CanidateName, loggedInUser() ), a!save( ri!report_data.score, ri!score )
}, submit: true, style: "OUTLINE", confirmMessage: if( local!currentIndex = local!totalQuestions, "Your test has been completed. Your score is " & local!score, null ) ) }, align: "END", marginBelow: "NONE" ) } ) } ) } )) --------- this is my code in this last save into in this part
a!save(ri!report_data.CanidateName,loggedInUser()),a!save(ri!report_data.score,ri!score)
I have to store score and name for this I need to use process model in process model 1 st question only coming next the node is ending I can't able to create a processmodel.
a!localVariables( local!batchSize: 1, local!totalQuestions : 89, local!currentIndex: 1, local!pagingInfo: a!pagingInfo( startIndex: local!currentIndex, batchSize: local!batchSize ), local!exams: a!queryEntity( entity: cons!OQA_excelData_Cons, query: a!query( pagingInfo: local!pagingInfo ) ), local!currentQuestion: if( local!currentIndex <= local!totalQuestions, index(local!exams.data, 1), null ), local!score : 0, a!formLayout( contents: { a!sectionLayout( contents: { a!textField( value: local!currentQuestion.Qno, readOnly: true ), a!textField( label: "Question", value: local!currentQuestion.Questions, readOnly: true ), a!paragraphField( label: "Options", value: local!currentQuestion.Options, readOnly: true ), a!textField( label: "Answer", value: local!currentQuestion.SelectedAnswer, saveInto: local!currentQuestion.SelectedAnswer, required: true ) }, showWhen: ri!showChild = false ), rule!OQA_score_interface( showChild: ri!showChild = true, scores: ri!score), a!columnsLayout( columns: { a!columnLayout( contents: { a!buttonArrayLayout( buttons: { a!buttonWidget( label: if( local!currentIndex < local!totalQuestions - 1, "Next", "Submit" ), iconPosition: "END", saveInto: { if( local!currentIndex < local!totalQuestions, a!save( local!currentIndex, local!currentIndex + 1 ), {} ), a!save( local!score, if( local!currentQuestion.SelectedAnswer = local!currentQuestion.Answers, local!score + 1, local!score ) ), a!save( ri!score, if( local!currentQuestion.SelectedAnswer = local!currentQuestion.Answers, local!score , local!score ) ), a!save( ri!showChild, if( local!currentIndex = local!totalQuestions, true, false ) ), a!save( ri!score, ri!scores.score ), a!save( ri!report_data.CanidateName, loggedInUser() ), a!save( ri!report_data.score, ri!score ) }, submit: true, style: "OUTLINE", confirmMessage: if( local!currentIndex = local!totalQuestions, "Your test has been completed. Your score is " & local!score, null ) ) }, align: "END", marginBelow: "NONE" ) } ) } ) } ) )
Remove the submit true value and pass it as true only when it is on the last question.
Add the same condition on submit, like you have on confirmation message