Go-to-Light Service 4.0.0.2397 - 121 - API License to Cloud Demo

<back to all web services

MissionBulkStart

Requires Authentication
The following routes are available for this service:
All Verbs/MissionBulkStart/
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Position:
    id: int = 0
    key: Optional[str] = None
    pixel: int = 0
    width: int = 0
    area_i_d: int = 0
    area_label: Optional[str] = None
    label: Optional[str] = None
    stockroom_i_d: Optional[int] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TraceabilityMissionDetail:
    id_mission_detail: int = 0
    prepared_quantity: float = 0.0
    batch: Optional[str] = None
    container_i_d: int = 0
    container_name: Optional[str] = None
    container_size_x_cm: float = 0.0
    container_size_y_cm: float = 0.0
    container_size_z_cm: float = 0.0
    container_weight: float = 0.0
    stockroom_i_d: int = 0
    stockroom_name: Optional[str] = None
    operator: Optional[str] = None
    version_selected: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TraceabilityMissionDetailPacking:
    id_mission_detail: int = 0
    prepared_quantity: float = 0.0
    batch: Optional[str] = None
    container_i_d: int = 0
    container_name: Optional[str] = None
    container_size_x_cm: float = 0.0
    container_size_y_cm: float = 0.0
    container_size_z_cm: float = 0.0
    container_weight: float = 0.0
    stockroom_i_d: int = 0
    stockroom_name: Optional[str] = None
    operator: Optional[str] = None
    version_selected: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Container:
    container_i_d: int = 0
    container_code: Optional[str] = None
    location: Optional[str] = None
    dimension_x: Optional[Object] = None
    dimension_y: Optional[Object] = None
    dimension_z: Optional[Object] = None
    deleted: bool = False


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class StockAdditional:
    stock_i_d: int = 0
    gtin: Optional[str] = None
    stock_location: Optional[str] = None
    physical_quantity_stock_location: float = 0.0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Stock:
    stock_i_d: int = 0
    product_i_d: Optional[str] = None
    product_attribute_i_d: Optional[str] = None
    reference: Optional[str] = None
    gtin: Optional[str] = None
    gtin_attribute: Optional[str] = None
    label: Optional[str] = None
    stock_location: Optional[str] = None
    physical_quantity_stock_location: float = 0.0
    reserve_stock_location: Optional[str] = None
    physical_quantity_reserve_stock_location: float = 0.0
    nb_s_k_u_in_package: Optional[int] = None
    package_reference: Optional[str] = None
    nb_s_k_u_in_package2: Optional[int] = None
    package_reference2: Optional[str] = None
    weight: Optional[str] = None
    fill_in_batch_number: bool = False
    fill_in_date: bool = False
    picture_u_r_l: Optional[str] = None
    stock_additionals: List[StockAdditional] = field(default_factory=list)
    search_key: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MissionDetailComment:
    id: int = 0
    mission_detail_i_d: int = 0
    comment: Optional[str] = None
    timestamp: Optional[datetime.datetime] = None
    operator: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MissionDetail:
    id: int = 0
    mission_i_d: int = 0
    label: Optional[str] = None
    reference: Optional[str] = None
    quantity: Optional[float] = None
    prepared_quantity: Optional[float] = None
    packed_quantity: float = 0.0
    positions: List[Position] = field(default_factory=list)
    tray: Optional[str] = None
    stock_location: Optional[str] = None
    line_number: Optional[int] = None
    info: Optional[str] = None
    gtin: Optional[str] = None
    supplier_reference: Optional[str] = None
    picking_index: int = 0
    traceability_details: List[TraceabilityMissionDetail] = field(default_factory=list)
    traceability_details_packing: List[TraceabilityMissionDetailPacking] = field(default_factory=list)
    substitutable: Optional[bool] = None
    substitution_ref: Optional[str] = None
    traceability_batch: Optional[str] = None
    data1: Optional[str] = None
    data2: Optional[str] = None
    data3: Optional[str] = None
    data4: Optional[str] = None
    data5: Optional[str] = None
    data6: Optional[str] = None
    data7: Optional[str] = None
    data8: Optional[str] = None
    data9: Optional[str] = None
    data10: Optional[str] = None
    data11: Optional[str] = None
    data12: Optional[str] = None
    package_reference: Optional[str] = None
    nb_s_k_u_in_package: Optional[int] = None
    package_reference2: Optional[str] = None
    nb_s_k_u_in_package2: Optional[int] = None
    container_i_d: Optional[int] = None
    container: Optional[Container] = None
    weight_per_item_in_kg: Optional[float] = None
    volume_per_item_in_m3: Optional[float] = None
    picture_u_r_l: Optional[str] = None
    stock: Optional[Stock] = None
    quantity_unit: Optional[str] = None
    comments: Optional[MissionDetailComment] = None
    shortage_quantity: Optional[float] = None
    item_preparation_date: Optional[datetime.datetime] = None
    creation_date_time: Optional[datetime.datetime] = None
    quantity_dispatched: Optional[int] = None
    versions: List[str] = field(default_factory=list)
    quantity_breakage: int = 0
    is_product_critical: Optional[bool] = None
    owner: Optional[str] = None
    stockroom_i_d: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Work:
    work_i_d: int = 0
    mission_i_d: int = 0
    owner: Optional[str] = None
    duration: Optional[datetime.timedelta] = None
    date_begin: Optional[datetime.datetime] = None
    date_end: Optional[datetime.datetime] = None


class MissionState(str, Enum):
    NEW = 'New'
    PICKING_STARTED = 'PickingStarted'
    PICKING_FINISHED = 'PickingFinished'
    PICKING_MANUALLY_VALIDATED = 'PickingManuallyValidated'
    RAMASSE_FINISHED = 'RamasseFinished'
    PACKING_FINISHED = 'PackingFinished'


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ShippingDetails:
    mission_i_d: int = 0
    shipping_weight: float = 0.0
    shipping_height: float = 0.0
    shipping_lenght: float = 0.0
    shipping_width: float = 0.0
    shipping_company: Optional[str] = None
    shipping_lastname: Optional[str] = None
    shipping_firstname: Optional[str] = None
    shipping_address1: Optional[str] = None
    shipping_address2: Optional[str] = None
    shipping_address3: Optional[str] = None
    shipping_postcode: Optional[str] = None
    shipping_country: Optional[str] = None
    shipping_city: Optional[str] = None
    shipping_other: Optional[str] = None
    shipping_phone: Optional[str] = None
    shipping_mobile_phone: Optional[str] = None
    shipping_mail: Optional[str] = None
    carrier_name: Optional[str] = None
    carrier_product_code: Optional[str] = None
    carrier_tracking_number: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Mission:
    id: int = 0
    name: Optional[str] = None
    info: Optional[str] = None
    delete_when_complete: Optional[bool] = None
    date_begin: Optional[datetime.datetime] = None
    date_end: Optional[datetime.datetime] = None
    owner: Optional[str] = None
    finder_key: Optional[str] = None
    details: List[MissionDetail] = field(default_factory=list)
    containers: List[Container] = field(default_factory=list)
    works: List[Work] = field(default_factory=list)
    type: Optional[str] = None
    trolley: Optional[str] = None
    printer: Optional[str] = None
    cancelled: Optional[bool] = None
    blocked: Optional[bool] = None
    mission_modification: Optional[str] = None
    carrier: Optional[str] = None
    batch_id: Optional[str] = None
    state: Optional[MissionState] = None
    related_containers_from_other_missions: List[Container] = field(default_factory=list)
    total_quantity: float = 0.0
    total_quantity_prepared: float = 0.0
    total_quantity_dispatched: float = 0.0
    total_quantity_packed: float = 0.0
    generic_data1: Optional[str] = None
    generic_data2: Optional[str] = None
    generic_data3: Optional[str] = None
    message: Optional[str] = None
    transport_label_printed: Optional[bool] = None
    output_file_generated: Optional[bool] = None
    shipping_details: Optional[ShippingDetails] = None
    connector_origin: Optional[str] = None
    dispatch_anomaly_temp_tray: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class MissionBulkStart:
    # @ApiMember(Description="Missions list", IsRequired=true)
    missions: List[Mission] = field(default_factory=list)
    """
    Missions list
    """


    # @ApiMember(Description="Mission owner", IsRequired=true)
    owner: Optional[str] = None
    """
    Mission owner
    """


    # @ApiMember(Description="Optional: name of the stockroom where are located the position")
    stockroom_name: Optional[str] = None
    """
    Optional: name of the stockroom where are located the position
    """


    # @ApiMember(Description="Reference of the target printer")
    printer: Optional[str] = None
    """
    Reference of the target printer
    """


    # @ApiMember(Description="Assigne a batch or not")
    assign_a_batch: bool = False
    """
    Assigne a batch or not
    """

Python MissionBulkStart DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /MissionBulkStart/ HTTP/1.1 
Host: clouddemo.pickeos.com 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	Missions: 
	[
		{
			ID: 0,
			Name: String,
			Info: String,
			DeleteWhenComplete: False,
			DateBegin: 0001-01-01,
			DateEnd: 0001-01-01,
			Owner: String,
			FinderKey: String,
			Details: 
			[
				{
					ID: 0,
					MissionID: 0,
					Label: String,
					Reference: String,
					Quantity: 0,
					PreparedQuantity: 0,
					PackedQuantity: 0,
					Positions: 
					[
						{
							ID: 0,
							Key: String,
							Pixel: 0,
							Width: 0,
							AreaID: 0,
							AreaLabel: String,
							Label: String,
							StockroomID: 0
						}
					],
					Tray: String,
					StockLocation: String,
					LineNumber: 0,
					Info: String,
					GTIN: String,
					SupplierReference: String,
					PickingIndex: 0,
					TraceabilityDetails: 
					[
						{
							IDMissionDetail: 0,
							PreparedQuantity: 0,
							Batch: String,
							ContainerID: 0,
							ContainerName: String,
							ContainerSizeXCm: 0,
							ContainerSizeYCm: 0,
							ContainerSizeZCm: 0,
							ContainerWeight: 0,
							StockroomID: 0,
							StockroomName: String,
							Operator: String,
							VersionSelected: String
						}
					],
					TraceabilityDetailsPacking: 
					[
						{
							IDMissionDetail: 0,
							PreparedQuantity: 0,
							Batch: String,
							ContainerID: 0,
							ContainerName: String,
							ContainerSizeXCm: 0,
							ContainerSizeYCm: 0,
							ContainerSizeZCm: 0,
							ContainerWeight: 0,
							StockroomID: 0,
							StockroomName: String,
							Operator: String,
							VersionSelected: String
						}
					],
					Substitutable: False,
					SubstitutionRef: String,
					TraceabilityBatch: String,
					Data1: String,
					Data2: String,
					Data3: String,
					Data4: String,
					Data5: String,
					Data6: String,
					Data7: String,
					Data8: String,
					Data9: String,
					Data10: String,
					Data11: String,
					Data12: String,
					PackageReference: String,
					NbSKUInPackage: 0,
					PackageReference2: String,
					NbSKUInPackage2: 0,
					ContainerID: 0,
					Container: 
					{
						ContainerID: 0,
						ContainerCode: String,
						Location: String,
						DimensionX: {},
						DimensionY: {},
						DimensionZ: {},
						Deleted: False
					},
					WeightPerItemInKg: 0,
					VolumePerItemInM3: 0,
					PictureURL: String,
					Stock: 
					{
						StockID: 0,
						ProductID: String,
						ProductAttributeID: String,
						Reference: String,
						Gtin: String,
						GtinAttribute: String,
						Label: String,
						StockLocation: String,
						PhysicalQuantityStockLocation: 0,
						ReserveStockLocation: String,
						PhysicalQuantityReserveStockLocation: 0,
						NbSKUInPackage: 0,
						PackageReference: String,
						NbSKUInPackage2: 0,
						PackageReference2: String,
						Weight: String,
						FillInBatchNumber: False,
						FillInDate: False,
						PictureURL: String,
						StockAdditionals: 
						[
							{
								StockID: 0,
								Gtin: String,
								StockLocation: String,
								PhysicalQuantityStockLocation: 0
							}
						],
						SearchKey: String-String-String-String-String
					},
					QuantityUnit: String,
					Comments: 
					{
						ID: 0,
						MissionDetailID: 0,
						Comment: String,
						Timestamp: 0001-01-01,
						Operator: String
					},
					ShortageQuantity: 0,
					ItemPreparationDate: 0001-01-01,
					CreationDateTime: 0001-01-01,
					QuantityDispatched: 0,
					Versions: 
					[
						String
					],
					QuantityBreakage: 0,
					IsProductCritical: False,
					Owner: String,
					StockroomID: 0
				}
			],
			Containers: 
			[
				{
					ContainerID: 0,
					ContainerCode: String,
					Location: String,
					DimensionX: {},
					DimensionY: {},
					DimensionZ: {},
					Deleted: False
				}
			],
			Works: 
			[
				{
					WorkID: 0,
					MissionID: 0,
					Owner: String,
					Duration: PT0S,
					DateBegin: 0001-01-01,
					DateEnd: 0001-01-01
				}
			],
			Type: String,
			Trolley: String,
			Printer: String,
			Cancelled: False,
			Blocked: False,
			MissionModification: String,
			Carrier: String,
			BatchId: String,
			State: New,
			RelatedContainersFromOtherMissions: 
			[
				{
					ContainerID: 0,
					ContainerCode: String,
					Location: String,
					DimensionX: {},
					DimensionY: {},
					DimensionZ: {},
					Deleted: False
				}
			],
			TotalQuantity: 0,
			TotalQuantityPrepared: 0,
			TotalQuantityDispatched: 0,
			TotalQuantityPacked: 0,
			GenericData1: String,
			GenericData2: String,
			GenericData3: String,
			Message: String,
			TransportLabelPrinted: False,
			OutputFileGenerated: False,
			ShippingDetails: 
			{
				MissionID: 0,
				ShippingWeight: 0,
				ShippingHeight: 0,
				ShippingLenght: 0,
				ShippingWidth: 0,
				ShippingCompany: String,
				ShippingLastname: String,
				ShippingFirstname: String,
				ShippingAddress1: String,
				ShippingAddress2: String,
				ShippingAddress3: String,
				ShippingPostcode: String,
				ShippingCountry: String,
				ShippingCity: String,
				ShippingOther: String,
				ShippingPhone: String,
				ShippingMobilePhone: String,
				ShippingMail: String,
				CarrierName: String,
				CarrierProductCode: String,
				CarrierTrackingNumber: String
			},
			ConnectorOrigin: String,
			DispatchAnomalyTempTray: String
		}
	],
	Owner: String,
	StockroomName: String,
	Printer: String,
	AssignABatch: False
}