Forum .LRN Q&A: Re: ANN New version of IMS-LD 1.2.0 tagged and released

Hi,

I've installed imsld on a fresh install and got some problems when uploading a level B LD after creating runs, groups etc:

1) a typo in the context_info query (proc imsld::runtime::activity_structure::show_hide). I fixed it locally:

original query:

db_1row context_info {
select isa.structure_id,
isa.item as structure_item_id
from imsld_runs ir, imsld_componentsi comp, imsld_activity_structuresi isa, imsld_imsldsi ii
where ir.run_id = :run_id
and ir.imsld_id = ii.imsld_id
and ii.item_id = comp.imsld_id
and isa.identifier = :identifier
and isa.component_id = comp.item_id
}

fixed query:

db_1row context_info {
select isa.structure_id,
isa.item_id as structure_item_id
from imsld_runs ir, imsld_componentsi comp, imsld_activity_structuresi isa, imsld_imsldsi ii
where ir.run_id = :run_id
and ir.imsld_id = ii.imsld_id
and ii.item_id = comp.imsld_id
and isa.identifier = :identifier
and isa.component_id = comp.item_id
}

2) a typo in the learning_activity db_foreach (same proc):

Original:

# 2. show the learning activities
db_foreach learning_activity {
select la.item_id as activity_item_id,
la.identifier as la_identifier
from imsld_learning_activitiesi, acs_rels ar
where ar.object_id_one = :structure_item_id
and ar.object_id_two = la.item_id
} {
imsld::runtime::isvisible::show -run_id $run_id -identifier $la_identifier -action $action -user_id $user_id
}

Fixed one:

# 2. show the learning activities
db_foreach learning_activity {
select la.item_id as activity_item_id,
la.identifier as la_identifier
from imsld_learning_activitiesi la, acs_rels ar
where ar.object_id_one = :structure_item_id
and ar.object_id_two = la.item_id
} {
imsld::runtime::isvisible::show -run_id $run_id -identifier $la_identifier -action $action -user_id $user_id
}

But after fixing those 2, hoping my fix is correct, I still got an error:

invalid command name "imsld::runtime::isvisible::show"
while executing
"imsld::runtime::isvisible::show -run_id $run_id -identifier $la_identifier -action $action -user_id $user_id"
("uplevel" body line 2)
invoked from within
"uplevel 1 $code_block "
("1" arm line 1)
invoked from within
"switch $errno {
0 {
# TCL_OK
}
1 {
# TCL_ERROR
..."
("while" body line 20)
invoked from within
"while { [db_getrow $db $selection] } {
incr counter
if { [info exists array_val] } {
unset array_val
..."
("uplevel" body line 5)
invoked from within
"uplevel 1 $code_block "
invoked from within
"db_with_handle -dbn $dbn db {
set selection [db_exec select $db $full_statement_name $sql]

set counter 0
while { [db_getrow $..."
(procedure "db_foreach" line 36)
invoked from within
"db_foreach learning_activity {
select la.item_id as activity_item_id,
la.identifier as la_identifier
from imsld_learning_activ..."
(procedure "imsld::runtime::activity_structure::show_hide" line 32)
invoked from within
"imsld::runtime::activity_structure::show_hide -run_id $run_id -identifier [$refNodes getAttribute "ref"] -action "show""
("activity-structure-ref" arm line 2)
invoked from within
"switch -- [$refNodes localName] {
{class} {
set class [$refNodes getAttribute class ""]
..."
("foreach" body line 2)
invoked from within
"foreach refNodes [$executeNode childNodes] {
switch -- [$refNodes localName] {
{class} {
..."
("show" arm line 2)
invoked from within
"switch -- [$executeNode localName] {
{show} {
foreach refNodes [$executeNode childNodes] {
switch -- [..."
(procedure "imsld::statement::execute" line 8)
invoked from within
"imsld::statement::execute -run_id $run_id -statement [$thenNode childNodes] -user_id $user_id"
(procedure "imsld::condition::execute" line 14)
invoked from within
"imsld::condition::execute -run_id $run_id -condition $condition -user_id $user_id"
(procedure "imsld::condition::execute_all" line 17)
invoked from within
"imsld::condition::execute_all -run_id $run_id -user_id $user_id"
("foreach" body line 2)
invoked from within
"foreach user_id $users_list {
imsld::condition::execute_all -run_id $run_id -user_id $user_id
}"
("uplevel" body line 33)
invoked from within
"uplevel {
ad_page_contract {
Confirm changes and set a run as activeAsign users assigned to an specified group

@author mailto:lfuente@it....";
(procedure "code::tcl::/web/cursos/packages/imsld/www/admin/imsld-confir..." line 2)
invoked from within
"code::tcl::$__adp_stub"
invoked from within
"if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init tcl $__adp_stub
..."
("uplevel" body line 3)
invoked from within
"uplevel {

if { [file exists $__adp_stub.tcl] } {

# ensure that data source preparation procedure exists and is up-to-date
adp_init t..."
(procedure "adp_prepare" line 2)
invoked from within
"adp_prepare "
(procedure "template::adp_parse" line 30)
invoked from within
"template::adp_parse [file root [ad_conn file]] {}"
(procedure "adp_parse_ad_conn_file" line 5)
invoked from within
"$handler"
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
$handler
} ad_script_abort val {
# do nothing
}"
invoked from within
"rp_serve_concrete_file [ad_conn file]"
(procedure "rp_serve_abstract_file" line 60)
invoked from within
"rp_serve_abstract_file "$root/$path""
("uplevel" body line 2)
invoked from within
"uplevel $code"
invoked from within
"ad_try {
rp_serve_abstract_file "$root/$path"
set tcl_url2file([ad_conn url]) [ad_conn file]
set tcl_url2path_info..."

Hi Emma,

I really want to thank you for all of your help!

The bug is fixed and commited in head. It was a proc which was not tested by our UoLs, it had some typos and had wrong proc calls. It should work fine now.

I encourage you to keep reporting any bug that you might find (not too many, I hope! ;o)

Regards,

Jose Pablo

Thank you Jose Pablo for fixing this so quickly. I can upload a level-b LD with no error now :).