কাজ খুঁজুন

এই দস্তাবেজটি বর্ণনা করে যে আপনি কোন সার্ভার বা ব্রাউজার থেকে কাজের তথ্য খুঁজে পেতে পারেন। ফ্লিট ইঞ্জিন কাজ খুঁজে পেতে দুটি উপায় সমর্থন করে:

  • কাজগুলি দেখুন : আপনি নিম্নলিখিত আইডিগুলির মাধ্যমে কাজগুলি সন্ধান করতে পারেন:

    • টাস্ক আইডি: ফ্লিট অপারেটরদের মতো ব্যবহারকারীদের দ্বারা ব্যবহৃত হয় যাদের টাস্ক ডেটার সম্পূর্ণ ভিউতে অ্যাক্সেস রয়েছে।
    • ট্র্যাকিং আইডি: আপনার ক্লায়েন্ট সফ্টওয়্যার দ্বারা একটি শেষ ব্যবহারকারীকে সীমিত তথ্য প্রদান করতে ব্যবহৃত হয়, যেমন যখন তাদের বাড়িতে একটি প্যাকেজ প্রত্যাশিত হয়।

    টাস্ক আইডি এবং টাস্ক ট্র্যাকিং আইডির মধ্যে পার্থক্য বুঝতে ভুলবেন না। তারা এক নয়। নির্ধারিত টাস্ক গাইডে বেসিক টাস্ক ক্ষেত্রগুলি দেখুন।

  • কার্য তালিকাভুক্ত করুন : কার্যগুলিতে বিস্তৃত অ্যাক্সেস, শুধুমাত্র বিশ্বস্ত ব্যবহারকারীদের জন্য।

কাজগুলি সন্ধান করুন

এই বিভাগে টাস্ক আইডি বা ট্র্যাকিং আইডি দ্বারা কাজগুলি কীভাবে সন্ধান করা যায় তা বর্ণনা করে৷ এটির নিম্নলিখিত প্রয়োজনীয়তা রয়েছে:

  • ট্র্যাকিং আইডি দ্বারা লুকআপগুলিকে অবশ্যই ট্র্যাক করা বস্তুর জন্য দৃশ্যমানতা নিয়মে বর্ণিত দৃশ্যমানতা নিয়মগুলি মেনে চলতে হবে৷

  • নিরাপত্তা ঝুঁকি সীমিত করতে সম্ভাব্য সংকীর্ণ টোকেন ব্যবহার করুন। উদাহরণস্বরূপ, যদি আপনি একটি ডেলিভারি কনজিউমার টোকেন ব্যবহার করেন, যে কোনো কল শুধুমাত্র সেই শেষ ব্যবহারকারীর সাথে প্রাসঙ্গিক তথ্য প্রদান করে, যেমন শিপার বা চালানের রিসিভার। ফ্লিট ইঞ্জিন প্রতিক্রিয়াগুলিতে অন্যান্য সমস্ত তথ্য সংশোধন করে। টোকেন সম্পর্কে আরও তথ্যের জন্য, JSON ওয়েব টোকেন দেখুন।

টাস্ক আইডি দ্বারা টাস্ক দেখুন

আপনি জিআরপিসি বা আরইএসটি ব্যবহার করে সার্ভার পরিবেশ থেকে একটি টাস্ক আইডি দ্বারা একটি টাস্ক সন্ধান করতে পারেন। নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে Java gRPC লাইব্রেরি বা GetTask- এ একটি REST অনুরোধ ব্যবহার করতে হয়।

gRPC

 static final String PROJECT_ID = "my-delivery-co-gcp-project";
 static final String TASK_ID = "task-8597549";

 DeliveryServiceBlockingStub deliveryService =
   DeliveryServiceGrpc.newBlockingStub(channel);

 // Task request
 String taskName = "providers/" + PROJECT_ID + "/tasks/" + TASK_ID;
 GetTaskRequest getTaskRequest = GetTaskRequest.newBuilder()  // No need for the header
     .setName(taskName)
     .build();

 try {
   Task task = deliveryService.getTask(getTaskRequest);
 } catch (StatusRuntimeException e) {
   Status s = e.getStatus();
   switch (s.getCode()) {
      case NOT_FOUND:
        break;

      case PERMISSION_DENIED:
        break;
   }
   return;
 }

বিশ্রাম

GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks/<taskId>

  • <id> টাস্কের জন্য একটি অনন্য শনাক্তকারী।
  • <taskId> হল টাস্কের আইডি যা খুঁজতে হবে।
  • অনুরোধের শিরোনামে অবশ্যই Bearer <token> মান সহ একটি ক্ষেত্র অনুমোদন থাকতে হবে, যেখানে পরিষেবা অ্যাকাউন্টের ভূমিকা এবং JSON ওয়েব টোকেনে বর্ণিত নির্দেশিকা অনুসারে আপনার সার্ভার দ্বারা <token> জারি করা হয়।
  • অনুরোধের বডি খালি হতে হবে।
  • লুকআপ সফল হলে, প্রতিক্রিয়া বডিতে একটি টাস্ক সত্তা থাকে।

curl কমান্ডের উদাহরণ:

    # Set JWT, PROJECT_ID, and TASK_ID in the local environment
    curl -H "Authorization: Bearer ${JWT}" \
      "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks/${TASK_ID}"

আইডি ট্র্যাকিং দ্বারা কাজগুলি সন্ধান করুন

নিম্নলিখিত উদাহরণগুলি দেখায় কিভাবে তাদের শিপমেন্ট ট্র্যাকিং আইডি দ্বারা হয় gRPC বা GetTaskTrackingInfo তে একটি HTTP REST কল ব্যবহার করে কাজগুলি সন্ধান করতে হয়৷

gRPC

static final String PROJECT_ID = "my-delivery-co-gcp-project";
static final String TRACKING_ID = "TID-7449w087464x5";

DeliveryServiceBlockingStub deliveryService =
  DeliveryServiceGrpc.newBlockingStub(channel);

// Tasks request
String parent = "providers/" + PROJECT_ID;
GetTaskTrackingInfoRequest getTaskTrackingInfoRequest = GetTaskTrackingInfoRequest.newBuilder()  // No need for the header
    .setParent(parent)
    .setTrackingId(TRACKING_ID)
    .build();

try {
  TaskTrackingInfo taskTrackingInfo = deliveryService.getTaskTrackingInfo(getTaskTrackingInfoRequest);
} catch (StatusRuntimeException e) {
  Status s = e.getStatus();
  switch (s.getCode()) {
     case NOT_FOUND:
       break;

     case PERMISSION_DENIED:
       break;
  }
  return;
}

বিশ্রাম

GET https://fleetengine.googleapis.com/v1/providers/<project_id>/taskTrackingInfo/<tracking_id>

  • <tracking_id> টাস্কের সাথে যুক্ত ট্র্যাকিং আইডি।

  • অনুরোধ শিরোনামটিতে Bearer <token> মান সহ একটি ক্ষেত্র অনুমোদন থাকতে হবে, যেখানে <token> সঠিক পরিষেবা অ্যাকাউন্ট ভূমিকা বহন করে। পরিষেবা অ্যাকাউন্টের ভূমিকা দেখুন।

  • লুকআপ সফল হলে, প্রতিক্রিয়া বডিতে একটি টাস্কট্র্যাকিং ইনফো সত্তা থাকে।

curl কমান্ডের উদাহরণ:

# Set JWT, PROJECT_ID, and TRACKING_ID in the local environment
curl -H "Authorization: Bearer ${JWT}" \
  "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/taskTrackingInfo/${TRACKING_ID}"

কাজের তালিকা করুন

তালিকাভুক্ত কার্যগুলি কার্যগুলিতে বিস্তৃত অ্যাক্সেসের অনুরোধ করে৷ তালিকাভুক্ত কাজ শুধুমাত্র বিশ্বস্ত ব্যবহারকারীদের জন্য উদ্দেশ্যে করা হয়. তালিকা কাজের অনুরোধ করার সময় ডেলিভারি ফ্লিট রিডার বা ডেলিভারি অ্যাডমিন প্রমাণীকরণ টোকেন ব্যবহার করুন। আরও তথ্যের জন্য পরিষেবা অ্যাকাউন্টের ভূমিকা দেখুন।

পৃষ্ঠা সংখ্যা তালিকা

টাস্ক তালিকা পৃষ্ঠাবদ্ধ করা হয়. একটি পৃষ্ঠার আকার তালিকা টাস্ক অনুরোধে নির্দিষ্ট করা যেতে পারে. যদি একটি পৃষ্ঠার আকার নির্দিষ্ট করা হয়, তাহলে প্রত্যাবর্তিত কাজের সংখ্যা নির্দিষ্ট পৃষ্ঠার আকারের চেয়ে বেশি নয়। যদি কোন পৃষ্ঠার আকার উপস্থিত না থাকে, একটি যুক্তিসঙ্গত ডিফল্ট ব্যবহার করা হয়। যদি অনুরোধ করা পৃষ্ঠার আকার একটি অভ্যন্তরীণ সর্বোচ্চ মান অতিক্রম করে, তাহলে অভ্যন্তরীণ সর্বোচ্চ ব্যবহার করা হয়।

একটি কার্য তালিকায় ফলাফলের পরবর্তী পৃষ্ঠা পড়ার জন্য একটি টোকেন অন্তর্ভুক্ত থাকতে পারে। পরবর্তী পৃষ্ঠাটি পুনরুদ্ধার করতে, পৃষ্ঠা টোকেন সহ একই অনুরোধটি পুনরায় জারি করুন৷ প্রত্যাবর্তিত পৃষ্ঠা টোকেন খালি হলে, পুনরুদ্ধারের জন্য আর কোন কাজ পাওয়া যায় না।

কাজের তালিকা করার সময় ক্ষেত্র

কাজের তালিকা করার সময় ফ্লিট ইঞ্জিন নিম্নলিখিত ক্ষেত্রগুলিকে সংশোধন করে:

  • VehicleStop.planned_location
  • VehicleStop.state
  • VehicleStop.TaskInfo.taskId

Google API উন্নতির প্রস্তাবের উপর ভিত্তি করে নিম্নলিখিত ক্ষেত্র বিন্যাসগুলি ব্যবহার করুন:

ক্ষেত্র প্রকার বিন্যাস উদাহরণ
টাইমস্ট্যাম্প RFC-3339 task_outcome_time = 2022-03-01T11:30:00-08:00
সময়কাল একটি s দ্বারা অনুসরণ করা সেকেন্ডের সংখ্যা task_duration = 120s
এনাম স্ট্রিং state = CLOSED AND type = PICKUP
অবস্থান point.latitude এবং point.longitude planned_location.point.latitude > 36.1 AND planned_location.point.longitude < -122.0

তালিকাভুক্ত কাজগুলি ফিল্টার করুন

আপনি বেশিরভাগ টাস্ক বৈশিষ্ট্য দ্বারা তালিকাভুক্ত কাজগুলি ফিল্টার করতে পারেন। ফিল্টার ক্যোয়ারী সিনট্যাক্সের জন্য, AIP-160 দেখুন। কোনো ফিল্টার ক্যোয়ারী নির্দিষ্ট করা না থাকলে, সমস্ত কাজ তালিকাভুক্ত করা হয়।

নিম্নলিখিত টেবিলটি বৈধ কার্য বৈশিষ্ট্যগুলি দেখায় যা আপনি ফিল্টারিংয়ের জন্য ব্যবহার করতে পারেন:

ফিল্টারিং তালিকার জন্য টাস্ক বৈশিষ্ট্য
  • type
  • attributes
  • tracking_id
  • delivery_vehicle_id
  • state
  • planned_location
  • task_duration
  • task_duration_outcome
  • task_outcome
  • task_outcome_location
  • task_outcome_time

ফিল্টার ক্যোয়ারী অপারেটরদের সম্পূর্ণ তালিকার জন্য AIP-160 দেখুন।

কাজের উদাহরণ তালিকাভুক্ত করুন

নিচের উদাহরণে দেখানো হয়েছে কিভাবে একটি deliveryVehicleId এবং একটি টাস্ক অ্যাট্রিবিউটের জন্য কাজগুলি তালিকাভুক্ত করতে হয়, জাভা gRPC লাইব্রেরি এবং HTTP REST কলের মাধ্যমে ListTasks এ।

একটি সফল প্রতিক্রিয়া এখনও খালি হতে পারে। একটি খালি প্রতিক্রিয়া নির্দেশ করে যে সরবরাহকৃত deliveryVehicleId সাথে সম্পর্কিত কোনো কাজ নেই।

gRPC

 static final String PROJECT_ID = "my-delivery-co-gcp-project";
 static final String TRACKING_ID = "TID-7449w087464x5";

 DeliveryServiceBlockingStub deliveryService =
   DeliveryServiceGrpc.newBlockingStub(channel);

 // Tasks request
 String parent = "providers/" + PROJECT_ID;
 ListTasksRequest listTasksRequest = ListTasksRequest.newBuilder()  // No need for the header
     .setParent(parent)
     .setFilter("delivery_vehicle_id = 123 AND attributes.foo = true")
     .build();

 try {
   ListTasksResponse listTasksResponse = deliveryService.listTasks(listTasksRequest);
 } catch (StatusRuntimeException e) {
   Status s = e.getStatus();
   switch (s.getCode()) {
      case NOT_FOUND:
        break;

      case PERMISSION_DENIED:
        break;
   }
   return;
 }

বিশ্রাম

GET https://fleetengine.googleapis.com/v1/providers/<project_id>/tasks

তালিকাভুক্ত কাজগুলিতে একটি ফিল্টার প্রয়োগ করতে, একটি "ফিল্টার" URL প্যারামিটার অন্তর্ভুক্ত করুন যার মান হিসাবে একটি URL-এস্কেপড ফিল্টার ক্যোয়ারী রয়েছে৷

অনুরোধ শিরোনামটিতে Bearer <token> মান সহ একটি ক্ষেত্র অনুমোদন থাকতে হবে, যেখানে <token> সঠিক পরিষেবা অ্যাকাউন্ট ভূমিকা বহন করে। পরিষেবা অ্যাকাউন্টের ভূমিকা দেখুন।

একটি সফল লুকআপ নিম্নলিখিত কাঠামো সহ একটি প্রতিক্রিয়া বডি প্রদান করে:

    // JSON representation
    {
      "tasks": [
        {
          object (Task)
        }
      ],
      "nextPageToken": string,
      "totalSize": integer
    }

curl কমান্ডের উদাহরণ:

 # Set JWT, PROJECT_ID, and VEHICLE_ID in the local environment
 curl -H "Authorization: Bearer ${JWT}" \
   "https://fleetengine.googleapis.com/v1/providers/${PROJECT_ID}/tasks?filter=state%20%3D%20OPEN%20AND%20delivery_vehicle_id%20%3D%20${VEHICLE_ID}"

এরপর কি