Normalmente un campo de property bag tiene esta estructura <EMP_DIRECTIVO_COOP>false</EMP_DIRECTIVO_COOP>
Sin embargo, si existen procedimientos almacenados que actualicen los valores de los property bag utilizando la función gen.set_pb_field_data con un valor nulo, el campo del property bag "pierde" su estructura y queda asi <EMP_CODTPL_13VO /> cuando debería de quedar asi <EMP_CODTPL_13VO> </EMP_CODTPL_13VO>
Se sugiere seguir las siguientes recomendaciones:
Agregar este par de líneas al inicio de la función gen.set_pb_field_data para que en el caso de que el valor a cargar sea nulo, no actualice nada
if @valor is null
return @xml
Validar que el valor a insertar no sea nulo
UPDATE exp.emp_empleos 
    SET emp_property_bag_data = gen.set_pb_field_data(emp_property_bag_data, 'Empleos', 'EMP_DEVENGA_COMISION', @variable_temp)
    WHERE emp_codigo = @codemp
    and @variable_temp is not null
Para revisar si tienen registros del property bag con estas inconsistencias pueden utilizar la siguiente sentencia
SELECT emp_codigo
FROM exp.emp_empleos
WHERE CHARINDEX('<EMP_CODIGO_BASIS/>',CONVERT(VARCHAR(MAX),emp_property_bag_data),1) > 0
Para depurar dichos registros, pueden utilizar la siguiente sentencia
UPDATE exp.emp_empleos
SET emp_property_bag_data.modify('delete /DocumentElement/*/EMP_CODIGO_BASIS')
where CHARINDEX('<EMP_CODIGO_BASIS/>',CONVERT(VARCHAR(MAX),emp_property_bag_data),1) > 0
                                         
                                        
                                            
    
        answered
        26 Sep '15, 14:02
    
    
    sbarahona ♦♦
    (suspended)
    
    accept rate:
    32%