 				} else {
 					field = attr.fields[fieldIdx];
 					if ( applyToNonEmptyNodes || (field.value == null && field.symbol == null)) {
-						o = new UpdateRequestOperation();
-						o.method = UpdateRequestOperation$Method.UPDATE;
-						o.parentEntityId = node.parentId;
-						o.nodeName = node.name;
-						o.nodeId = node.id;
-						o.fieldIndex = fieldIdx;
-						o.remarks = field.remarks;
-						o.symbol = symbol;
-						if ( FieldProxy.isReasonBlankSymbol(symbol) ) {
-							o.value = null;
-						} else {
-							o.value = field.value != null ? field.value.toString(): null;
-						}
+						o = createUpdateSymbolOperation(node, field, fieldIdx, symbol);
 						updateRequest.addOperation(o);
 					}
 				}
 			}
+		}
+		
+		private static function createUpdateSymbolOperation(node:NodeProxy, field:FieldProxy, fieldIdx:int, symbol:FieldSymbol):UpdateRequestOperation {
+			var o:UpdateRequestOperation = new UpdateRequestOperation();
+			o.method = UpdateRequestOperation$Method.UPDATE;
+			o.parentEntityId = node.parentId;
+			o.nodeName = node.name;
+			o.nodeId = node.id;
+			o.fieldIndex = fieldIdx;
+			o.remarks = field.remarks;
+			o.symbol = symbol;
+			if ( FieldProxy.isReasonBlankSymbol(symbol) ) {
+				o.value = null;
+			} else {
+				o.value = field.value != null ? field.value.toString(): null;
+			}
+			return o;
 		}
 		
 		private static function skippedField(attr:AttributeProxy, index:int):Boolean {

			}
		}

		protected static function prepareApproveMissingRequests(updateRequest:UpdateRequest, nodeProxy:NodeProxy, fieldIdx:Number, applyToNonEmptyNodes:Boolean = true):void {
			if( nodeProxy is EntityProxy ){
				var entity:EntityProxy = nodeProxy as EntityProxy;
				var children:IList = entity.getChildren();
				for each (var child:NodeProxy in children) {
					prepareApproveMissingRequests(updateRequest, child, fieldIdx, applyToNonEmptyNodes);
				}
			} else {
				var attr:AttributeProxy = AttributeProxy(nodeProxy);
				var o:UpdateRequestOperation;
				var field:FieldProxy;
				if(isNaN(fieldIdx) || fieldIdx < 0){
					for(var index:int = 0; index < attr.fields.length; index ++) {
						field = attr.fields[index];
						if(applyToNonEmptyNodes || (field.value == null && (field.symbol == null || field.hasReasonBlankSpecified()))) {
							o = new UpdateRequestOperation();
							o.method = UpdateRequestOperation$Method.APPROVE_MISSING;
							o.parentEntityId = nodeProxy.parentId;
							o.nodeName = nodeProxy.name;
							o.nodeId = nodeProxy.id;
							o.fieldIndex = index;
							updateRequest.addOperation(o);
						}
					}
				} else {
					field = attr.fields[fieldIdx];
					if(applyToNonEmptyNodes || (field.value == null && (field.symbol == null || field.hasReasonBlankSpecified()))) {
						o = new UpdateRequestOperation();
						o.method = UpdateRequestOperation$Method.APPROVE_MISSING;
						o.parentEntityId = nodeProxy.parentId;
						o.nodeName = nodeProxy.name;
						o.nodeId = nodeProxy.id;
						o.fieldIndex = fieldIdx;
						updateRequest.addOperation(o);
					}
				}
			}
		}
		
		protected static function confirmErrorHandler(event:NodeEvent):void {

						if ( ! skippedField(attr, index) ) {
							field = attr.fields[index];
							if ( applyToNonEmptyNodes || (field.value == null && field.symbol == null)) {
								o = createUpdateSymbolOperation(node, field, index, symbol);
								updateRequest.addOperation(o);
							}
						}
